Вы пробовали использовать здесь цикл foreach
?
Вот краткий пример ... PHPaste Snippet
<?php
$firstArray = array(
array(
"id" => 1,
"something" => "Hello, World!"
),
array(
"id" => 3, // 3 on purpose
"something" => "Hello, mom?"
)
);
$secondArray = array(
array(
"id" => 1,
"thing" => null
),
array(
"id" => 2,
"thing" => null
)
);
foreach ($firstArray as $key => $value) {
foreach ($secondArray as $k => $v) {
if ($value['id'] == $v['id']) {
echo "Found one!\n------\n" . print_r($value, true) . "\ncontains the same ID as\n\n" . print_r($v, true) . "\n------\n";
// you may also do this if you want
// $secondArray[$k]['thing'] = $value['id'];
// this would set "thing" (in the second array) to the value of "id" (in the first array)
}
}
}
EDIT Вот второй пример, показывая, как вы могли бы использовать его как функцию ... PHPaste Snippet.
Примечание: Я использовал синтаксис массива OLD, потому что это легче понять новым программистам.
Таким образом, по существу, что вы делаете переборе каждого элемента в $firstArray
, сравнивая его с каждым пунктом в $secondArray
, делая вложенную foreach
внутри стороны первого foreach
, если это имеет смысл ...?
Вот что я только что сказал, в простой форме:
go through each item in array 1
--> compare it to each item in array 2
Вы также можете заметить, мое использование прекрасной функции РНР, print_r()
. Это отображает объекты и массивы в слегка более четкой форме.
Вы также можете увидеть, что я получаю значения из массивов, используя $value['id']
и $v['id']
. Они были определены в моем объявлении foreach, foreach ($firstArray as $key => $value)
; $value
является associative array, так что вы можете просто получить значение по ключу так же, как если бы вы создали массив так:
$myArray = [
"id" => 1
];
и схватился значения, как это:
echo $myArray['id']; // 1
Надеюсь, это помогло.
Вы что-то пробовали? (Также ваша структура массива немного неясна, сколько измерений имеет ваш массив!) – Rizier123
Это недопустимый синтаксис для массива –
Читайте о array_keys, in_array и array_search, чтобы решить вашу проблему – DLastCodeBender