Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/296.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP使用变量比较多维数组列中的所有值_Php_Multidimensional Array - Fatal编程技术网

PHP使用变量比较多维数组列中的所有值

PHP使用变量比较多维数组列中的所有值,php,multidimensional-array,Php,Multidimensional Array,我有一个多维数组和一个要比较的变量: $var = 1; $arr = array( 0 => array( 'id' => 5 'NumberAssigned' = 1 ), n => array( 'id' => 22 'NumberAssigned' = 1 ) ) 我想将多维数组中NumberAssigned列中的所有值与变量进行比较,如果列中的所有值

我有一个多维数组和一个要比较的变量:

$var = 1;
$arr = array(
    0 => array(
        'id' => 5
        'NumberAssigned' = 1
        ),
    n => array(
        'id' => 22
        'NumberAssigned' = 1
        )
)

我想将多维数组中
NumberAssigned
列中的所有值与变量进行比较,如果列中的所有值都与变量匹配,则
$var=$var+1
。解决方案是什么?

一个选项是使用
array\u column
将多维数组变成简单数组。使用
array\u unique
获取唯一值。如果只有一个唯一值且该值与
$var
相同,则所有
NumberAssigned
$var
相同

$var = 1;
$arr = array(
    0 => array(
        'id' => 5,
        'NumberAssigned' => 1
        ),
    1 => array(
        'id' => 22,
        'NumberAssigned' => 1
        ),
    2 => array(
        'id' => 23,
        'NumberAssigned' => 1
        ),
);


$num = array_unique(array_column($arr,'NumberAssigned'));

if( count($num) === 1 && $num[0] === $var ) $var++;
无需循环。
使用array_列获取所有值并删除array_唯一的重复项。
如果变量在数组中且计数为1,则所有值都与变量匹配

$narr = array_unique(array_column($arr, "NumberAssigned"));

If(in_array($var, $narr) && count($narr) == 1){
    $var++;
}Else{
   // They are not all 1
}

Echo $var;

解决方案是什么?你试过什么?