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

无法在两个php foreach循环中设置数组值,php,arrays,Php,Arrays,我将两个数组定义为 $array1 = (8,10); Array2是stdobject的数组,后来使用json解码、编码将其转换为以下内容。相同的Php echo输出如下所示: $array2 = Array ( [0] => Array ( [id] => 6 ) [1] => Array ( [id] => 8 ) [2] =

我将两个数组定义为

$array1 = (8,10);
Array2是stdobject的数组,后来使用json解码、编码将其转换为以下内容。相同的Php echo输出如下所示:

$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');   
            }
我想做的是将数组1与值array进行比较。如果$value['id']即第二个元素与数组1中的任何元素匹配,我将$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>';
正确的输出应为:

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


如果在第一个数组中找到值,则需要
中断if部分中的innerForeach循环,否则仍将循环第一个数组的所有值,并检查下一个值是否仍然等于第二个数组值。为什么要选择“尝试此操作”?因为代码循环值数组并将值与$array1进行比较。
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}')";
}