私の配列をマージするのに問題があり、何が間違っているのかわかりません。次のコードを考えてみましょう:2つの連想配列を1にマージする
$array1 = [
[ 'job' => '123', 'who' => 'Alpha' ],
[ 'job' => '789', 'who' => 'Bravo' ]
];
$array2 = [
[ 'job' => '123', 'when' => 'Today' ]
];
$desiredArray = [
[ 'job' => '123', 'who' => 'Alpha', 'when' => 'Today' ],
[ 'job' => '789', 'who' => 'Bravo', 'when' => '' ]
];
これは私がやろうとしていたものである:これはちょっと作品
$newArray = [];
foreach ($array2 as $row) {
foreach ($array1 as $record) {
if ($row['job'] === $record['job']) {
$tempArray = [
'when' => $row['when']
];
$newRecord = array_merge($record, $tempArray);
array_push($newArray, $newRecord);
};
};
};
が、問題は、一致がない場合、それはまだする必要があります元のレコードを新しい配列に入れてください。私はif文の外にいくつかのものを置こうとしましたが、私のループは固まっています。どんな助けもありがとうございます。
これは最高の答えです! – Kitson88
最良の答えは、ループを 'array_replace_recursive($ a1、$ a2)'で置き換えることです。 –
@Ayaou:素晴らしいアイデア!どのように私はあなたに賞を与えるのですか? – AbraCadaver