PHP将多维数组中的所有值与变量进行比较

时间:2018-06-03 05:32:00

标签: php multidimensional-array

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

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

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

2 个答案:

答案 0 :(得分:1)

一个选项是使用array_column将多维数组转换为简单数组。使用array_unique获取唯一值。如果只有1个唯一值且值与$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++;

答案 1 :(得分:1)

无需循环。
使用array_column获取所有值并使用array_unique删除重复项 如果var在数组中且计数为1,则所有值都匹配var。

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

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

Echo $var;

https://3v4l.org/k08NI