[英]PHP combine two arrays with different keys that have the same value?
我試圖提出一種方法,將具有不同鍵名和相同值的兩個數組組合在一起? 匹配值的順序可能不同,因此需要檢查是否匹配,如果是則合並。 有沒有簡單的方法可以完成? 任何幫助或指導表示贊賞。
陣列1
Array
(
[0] => Array
(
[location_id] => 1
[location_title] => Centralia
[location_slug] => Centralia
[state_name] => Illinois
)
[1] => Array
(
[location_id] => 3
[location_title] => Columbia
[location_slug] => columbia
[state_name] => Illinois
)
[2] => Array
(
[location_id] => 15
[location_title] => Dixon Hennepin
[location_slug] => dixon-hennepin
[state_name] => Illinois
)
)
陣列2
Array
(
[0] => Array
(
[hours_locationid] => 3
)
[1] => Array
(
[hours_locationid] => 1
)
[2] => Array
(
[hours_locationid] => 15
)
)
結果
Array
(
[0] => Array
(
[location_id] => 1
[location_title] => Centralia
[location_slug] => Centralia
[state_name] => Illinois
[hours_locationid] => 1
)
[1] => Array
(
[location_id] => 3
[location_title] => Columbia
[location_slug] => columbia
[state_name] => Illinois
[hours_locationid] => 3
)
[2] => Array
(
[location_id] => 15
[location_title] => Dixon Hennepin
[location_slug] => dixon-hennepin
[state_name] => Illinois
[hours_locationid] => 15
)
)
foreach($array1 as $i => $data) {
if(array_search(array('hours_locationid'=>$data['location_id']), $array2) !=== false)
$array1[$i]['hours_locationid'] = $data['location_id'];
}
foreach ($array1 as $val1) {
foreach ($array2 as $key => $val2) {
if ($val1['location_id'] == $val2['hours_locationid']) {
$val1['hours_locationid'] = $val2['hours_locationid'];
$results[] = $val1;
unset($array2[$key]);
}
}
}
var_dump($results);
應該可以工作,但是正如評論中提到的那樣,這是微不足道的
請在下面嘗試
替換$ array1和$ array2->演示: http : //codepad.org/1inDuoVe
<?php
$array1 = array(array("a"=>"aaa","b"=>"bbb"),array("x"=>"xxx","y"=>"yyy"));
$array2= array(array("c"=>"ccc"),array("z"=>"zzz"));
$i=0;
$j=0;
foreach($array2 as $single){
foreach($array1 as $multiple){
if($i == $j){
$keys = array_keys($single);
print $key = $keys[0];
$multiple = array_push_assoc($multiple,$key,$single[$key]);
$array1[$j] = $multiple;
}
++$j;
}
++$i;
}
var_dump($array1);
function array_push_assoc($array, $key, $value){
$array[$key] = $value;
return $array;
}
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.