欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

PHP二維數(shù)組去重算法

 更新時(shí)間:2016年12月17日 10:50:09   作者:chenyanxx  
本文給大家分享的代碼是php實(shí)現(xiàn)的二維數(shù)組根據(jù)鍵值合并并去重復(fù)的算法,非常實(shí)用,有需要的小伙伴可以參考下

需求

現(xiàn)在有下面一組二維數(shù)組:

array(8) {
 [0]=>
 array(2) {
  ["name"]=>
  string(4) "name"
  ["value"]=>
  string(6) "青葉"
 }
 [1]=>
 array(2) {
  ["name"]=>
  string(5) "phone"
  ["value"]=>
  string(11) "13812341234"
 }
 [2]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_507[]"
  ["value"]=>
  string(12) "我是青葉"
 }
 [3]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_508[]"
  ["value"]=>
  string(6) "合肥"
 }
 [4]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_509[]"
  ["value"]=>
  string(3) "男"
 }
 [5]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_510[]"
  ["value"]=>
  string(6) "足球"
 }
 [6]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_510[]"
  ["value"]=>
  string(6) "棒球"
 }
 [7]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_511[]"
  ["value"]=>
  string(16) "2016-12-15T11:15"
 }
}

需要將處于第二維鍵名為name,其值相同的數(shù)組的value合并,形成一個(gè)新的數(shù)組。

比如上面代碼中的name為fileds_510的兩個(gè)二維數(shù)組,就應(yīng)該合并為一個(gè)值為足球,棒球的數(shù)組。

思路

提到數(shù)組,再PHP中我們首先想到了循環(huán),那么這里顯然比較適合使用for循環(huán)處理,與冒泡排序相似,一個(gè)個(gè)比較,最好處理。

代碼

代碼如下:

$public_info = 數(shù)組;
for ($i=0;$i<count($public_info);$i++) {
  for ($j=$i+1;$j<count($public_info);$j++) {
    if ($public_info[$j]['name'] == $public_info[$i]['name']) {
      $public_info[$i]['value'] .= ',' . $public_info[$j]['value'];
      unset($public_info[$j]);
    }
  }
}

執(zhí)行結(jié)果:

array(7) {
 [0]=>
 array(2) {
  ["name"]=>
  string(4) "name"
  ["value"]=>
  string(6) "青葉"
 }
 [1]=>
 array(2) {
  ["name"]=>
  string(5) "phone"
  ["value"]=>
  string(11) "13812341234"
 }
 [2]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_507[]"
  ["value"]=>
  string(12) "我是青葉"
 }
 [3]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_508[]"
  ["value"]=>
  string(6) "合肥"
 }
 [4]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_509[]"
  ["value"]=>
  string(3) "男"
 }
 [5]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_510[]"
  ["value"]=>
  string(13) "足球,棒球"
 }
 [7]=>
 array(2) {
  ["name"]=>
  string(12) "fileds_511[]"
  ["value"]=>
  string(16) "2016-12-15T11:15"
 }
}

總結(jié)

需求已搞定,只要遇到數(shù)組,我們第一個(gè)想到的除了現(xiàn)成的PHP方法之外,就是循環(huán),不管是foreach還是for,上面例子是我項(xiàng)目處理的一個(gè)自定義表單編輯的小段過(guò)程,希望對(duì)大家思路有幫助。

相關(guān)文章

最新評(píng)論