无法在两个phpforeach循环中设置数组值


unable to set array values in two php foreach loops

我已经将两个数组定义为

$array1 = (8,10);

Array2是stdobject的数组,后来使用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’],即第二个元素与array1中的任何元素匹配,我将把$nnn的第四个元素保存为1。如果它与任何元素都不匹配,我将把它保存为0。我下面的代码:

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')
)

试试这个:

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