- 相關推薦
如何設置PHP二維數組去重算法
本文給大家分享的代碼是php實現的二維數組根據鍵值合并并去重復的算法,非常實用,有需要的小伙伴可以參考下。
需求
現在有下面一組二維數組:
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,其值相同的數組的value合并,形成一個新的數組。
比如上面代碼中的name為fileds_510的兩個二維數組,就應該合并為一個值為足球,棒球的數組。
思路
提到數組,再PHP中我們首先想到了循環,那么這里顯然比較適合使用for循環處理,與冒泡排序相似,一個個比較,最好處理。
代碼
代碼如下:
$public_info = 數組;
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]);
}
}
}
執行結果:
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"
}
}
總結
需求已搞定,只要遇到數組,我們第一個想到的除了現成的PHP方法之外,就是循環,不管是foreach還是for,上面例子是我項目處理的一個自定義表單編輯的小段過程,希望對大家思路有幫助。
【如何設置PHP二維數組去重算法】相關文章:
PHP二維去重算法的方法07-31
PHP二維數組排序的方法03-23
PHP二維數組排序方法06-24
php二維數組怎么求和07-16
PHP新手如何學習數組03-13
如何判斷php數組的維度08-04
PHP使用遞歸算法無限遍歷數組示例05-20
php二維數組相同鍵名相加實例02-09
PHP判斷數組是一維二維或幾維實例05-26