2016-05-01 2 views
1

Я определил два массива, какне удалось установить массив значений в двух 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') 
) 
+2

Если вы нашли значение в первом массиве, вам нужно «разбить» ваш внутренний цикл Foreach в if-части, иначе вы все равно пропустите все значения первого массива и проверьте, не осталось ли еще следующего значения равное второму значению массива. – Rizier123

ответ

1

попробовать это:

$nnn = array(); 
foreach ($valuesArray as $value) { 
    $x = (in_array($value[1], $array1))?1:0; 
    $nnn[] = "('','".$value[1]."','".Input::get('date')."','{$x}')"; 
} 
+0

Зачем ПП «попробовать это»? – Rizier123

+0

, потому что код проходит через значенияArray и сравнивает значения с $ array1. – cookies

Смежные вопросы