Я определил два массива, какне удалось установить массив значений в двух PHP Еогеасп петли
$array1 = (8,10);
array2 был массив stdobjects который позже был преобразован в ниже с использованием JSON декодирования, кодирования. Php эхо выход одного и того же ниже:
$array2 = Array
(
[0] => Array
(
[id] => 6
)
[1] => Array
(
[id] => 8
)
[2] => Array
(
[id] => 10
)
)
Позже я создал один массив
foreach($array2 as $value)
{
$valuesArray[] = array('',$value['id'],Input::get('date'),'0');
}
То, что я пытаюсь сделать, это сравнить array1 с valuesarray. Если $ value ['id'], то есть второй элемент, совпадает с любым элементом в массиве1, я сохраню 4-й элемент $ nnn как 1. Если он не соответствует ни одному из элементов, я сохраню его как 0. My код ниже:
foreach ($valuesArray as $value2)
{
foreach ($array1 as $value1)
{
if ($value2[1] == $value1)
{$x = 1;}
else
{$x = 0;}
}
$nnn[] = "('','".$value2[1]."','".Input::get('date')."','".$x."')";
}
echo '<pre>',print_r($nnn,1),'</pre>';
Вывод, который я получаю: Массив
(
[0] => ('','6','2016-04-25','0')
[1] => ('','8','2016-04-25','0')
[2] => ('','10','2016-04-25','1')
)
Правильный вывод должен быть:
Array
(
[0] => ('','6','2016-04-25','1')
[1] => ('','8','2016-04-25','1')
[2] => ('','10','2016-04-25','0')
)
Если вы нашли значение в первом массиве, вам нужно «разбить» ваш внутренний цикл Foreach в if-части, иначе вы все равно пропустите все значения первого массива и проверьте, не осталось ли еще следующего значения равное второму значению массива. – Rizier123