Мне нужно объединить два массива с помощью ключевого поля.объединить два массива с использованием общего поля в php
$array1 = array(val1 => 'abc', val2 => '5');
$array1 = array(val1 => 'bcd', val2 => '2');
$array2 = array(val1 => 'abc', val3 => '1');
$array2 = array(val1 => 'zzz', val3 => '3');
array1:
val1 val2
abc 5
bcd 2
array2:
val1 val3
abc 1
zzz 3
Результат должен быть следующим; (требование)
val1 val2 val3
abc 5 1
bcd 2 0
zzz 0 3
еще сейчас, я разработал, который дополнительно нуждается в некоторой модификации для достижения указанной выше таблице.
foreach($array1 as $ar1){
$val1='';
$val2='';
$val3='';
foreach($array2 as $ar2){
if($ar1['val1']==$ar2['val1']){
$val1=$ar1['val1'];
$val2=$ar1['val2'];
$val3=$ar2['val3'];
}
}
$result=array(
val1 => $val1,
val2 => $val2,
val3 => $val3
);
}
Это фиксирует только общие данные.
В 4 Массивах выше (два повторно объявлено) содержит синтаксическую ошибку, которая представляет собой дополнительная запятая перед последней скобкой. Кроме того, при выражении условий замените '=' на '==', иначе он не будет работать так, как ожидалось. – briosheje
@briosheje Это не синтаксическая ошибка. В PHP это действительно. – medowlock
Другая проблема заключается в том, что ключи в массиве должны быть строками ... – medowlock