PHP二維去重算法的方法
導語:需求已搞定,只要遇到數組,我們第一個想到的除了現成的PHP方法之外,就是循環,不管是foreach還是for,下面就由小編為大家介紹一下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
for ($j=$i+1;$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實現獲取FLV文件的時間
主要介紹了PHP實現獲取FLV文件的時間,本文直接給出實現代碼和使用方法,需要的朋友可以參考下。PHP如何獲取FLV文件時間呢,答案是fopen文件後查看FLV文件是HEX數據,並轉換為number。複製代碼代碼如下:<?phpfunctionBigEndian2Int($byte_word,$signed=false){$in...
-
php中zend相對路徑問題
php下使用zend相對路徑的處理方法。如何使用呢?就跟隨本站小編一起去了解下吧,想了解更多相關信息請持續關注我們應屆畢業生考試網!<?phpdefine('P_S',PATH_SEPARATOR);define('ROOT',"../");set_include_path(ROOT.P_S.'Zend'.P_S_incl...
-
PHP與.NET的區別
PHP跟,一個面向個人(php),一個面向大型系統(當然,做小系統也是可以的,只是資源佔用相對比較多小點)離旗鼓相當還有很遠.現在真正在台面上競爭的只有以java為開發語言的J2EE平台和以C#為代表,多語言的平台.下面小編給大家整理了PHP與的區別,供大家參閲。世界上最...
-
增強PHP程序安全的函數
安全是編程非常重要的一個方面。在任何一種編程語言中,都提供了許多的函數或者模塊來確保程序的安全性。在現代網站應用中,經常要獲取來自世界各地用户的輸入,但是,我們都知道“永遠不能相信那些用户輸入的數據”。所以在各種的Web開發語言中,都會提供保證用户輸入...