ループごとに 2 つ実行し、そのうちの 1 つを別のループに押し込みます。これは、複数の一致がある場合を除いて、正常に機能します。その場合、私は最後のものだけを取得しています。タイトルについて申し訳ありません。この質問を 1 行で呼び出す方法がよくわかりません。
foreach($items as &$item) {
foreach($fruits as &$fruit) {
$i = 0;
if($fruit['for']==$item['id']) {
$item["fruits"][$i] = $fruit;
$i++;
}
}
}
最初の配列:
array(114) {
[0]=>
array(5) {
["id"]=>
string(2) "76"
...
}
...
}
2 番目の配列:
array(47) {
[0]=>
array(5) {
["id"]=>
string(1) "4"
["for"]=>
string(2) "76"
...
}
...
}
if($fruit['for']==$item['id'])
ロジックが複数一致する場合、次の出力が必要です。
array(114) {
[0]=>
array(6) {
["id"]=>
string(2) "76"
...
["fruits"]=>
array(2) {
[0]=>
array(5) {
["id"]=>
string(1) "4"
["for"]=>
string(2) "76"
...
}
[1]=>
array(5) {
["id"]=>
string(2) "33"
["for"]=>
string(2) "76"
...
}
}
}
}
私は何を間違っていますか?