我有一个多维数组和一个要比较的变量:
$var = 1;
$arr = array(
0 => array(
'id' => 5
'NumberAssigned' = 1
),
n => array(
'id' => 22
'NumberAssigned' = 1
)
)
如果列中的所有值都与变量NumberAssigned
匹配,我想将多维数组中$var = $var+1
列内的所有值与变量进行比较。解决方案是什么?
答案 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;