array(5) {
[0]=>
array(14) {
["id"]=>
string(3) "143"
["store_id"]=>
string(3) "504"
["goodsid"]=>
string(2) "15"
["source"]=>
string(1) "2"
}
[1]=>
array(14) {
["id"]=>
string(3) "142"
["store_id"]=>
string(3) "503"
["goodsid"]=>
string(2) "33"
["source"]=>
string(1) "2"
}
[2]=>
array(14) {
["id"]=>
string(3) "141"
["store_id"]=>
string(3) "638"
["goodsid"]=>
string(2) "41"
["source"]=>
string(1) "1"
}
[3]=>
array(14) {
["id"]=>
string(3) "140"
["store_id"]=>
string(3) "638"
["goodsid"]=>
string(2) "41"
["source"]=>
string(1) "1"
}
}
Wie kann ein solches Array zusammengeführt werden, wenn die beiden Felder ?store_id“ und ?source“ gleich sind?
沒有現(xiàn)成的函數(shù)。只能自己寫了,而且不懂你說的合并什么意思。。。
可以循環(huán)下數(shù)據(jù)。
新數(shù)據(jù)使用$store_id.'_'.$source這兩個字段當(dāng)key
$data[$store_id.'_'.$source][] = $_data;
這樣,或者你想怎么處理
不想寫代碼,只說想法
1.既然合併,假如id、goodsid不能被覆蓋掉,只能用三層結(jié)構(gòu)數(shù)組即store_id、source為父類為一層,id、goodsid子類一層。
2.兩個字段相同store_id、source合併,即將兩個字段合併未新的數(shù)組作為鍵值、假如有新的元素,就重新添加所有信息,假如不是,直接添加子元素
使用hashmap的映射的方式:
1.構(gòu)造一個hashmap形式的數(shù)據(jù)結(jié)構(gòu),將store_id,source組合當(dāng)做一個key,用可變數(shù)組作為value,將store_id和source對應(yīng)的整個數(shù)據(jù)存入可變數(shù)組.
2.便利二維數(shù)組,如果通過store_id,source組合出來的key已經(jīng)存在于構(gòu)造的數(shù)據(jù)結(jié)構(gòu),則將store_id和source對應(yīng)的整個數(shù)據(jù)放入key對應(yīng)的可變數(shù)組中,如果不存在,則加入一個新的鍵值對,同樣是source和store_id組合值作為key,可變數(shù)組作為value。將source,store_id對應(yīng)的整個數(shù)據(jù)放入key對應(yīng)的可變數(shù)組。
3.便利hashmap,合并每個鍵對應(yīng)的數(shù)組中的數(shù)據(jù)。