Array
(
[0] => Array
(
[id] => 10
[on] => 2
)
[1] => Array
(
[id] => 15
[on] => 2
)
[2] => Array
(
[id] => 20
[on] => 2
)
)
我想要以下内容:
如果所有子阵列都有[on]=>2
,则返回 $ result = 2
如果其中一个子阵列有[on]=>1
,则返回 $ result = 1
任何人都可以帮助我吗?谢谢!
尝试了这个,但它没有纠正第一个要求
foreach($arr as $key=>$val){
if(in_array(2, $val)){
$result = 2;
}else if(in_array(1, $val)){
$result = 1;
}
}
答案 0 :(得分:2)
如果不满足1.和2.
function get_value( $array ){
foreach( $array as $item ){
if ( $item['on'] == 1 ){ return 1; }
if ( $item['on'] != 2 ){ return FALSE; }
}
return 2;
}
答案 1 :(得分:0)
foreach($arrayelements as $arrayelement) {
if($arrayelement['on'] == 2) {
$result = 2;
return $result;
}
if($arrayelement['on'] == 1) {
$result = 1;
return $result;
}
}
答案 2 :(得分:0)
有几种方法可以解决您的问题:这是我的! :)
使用以下函数,如果不满足,则会得到一组不需要的值
在这种情况下,您可能更准确地告诉我们您希望获得什么。
function my_check($array, $desired_value_for_all, $known_unwanted_value)
{
$not_desired = array_diff(
array_unique(
array_map(
create_function(
'$nested',
'return $nested["on"];'
),
$array
)
),
array($desired_value_for_all)
);
if (empty($not_desired))
return $desired_value_for_all;
elseif (in_array($known_unwanted_value, $not_desired))
return $known_unwanted_value;
else
return $not_desired;
}
示例1:
$array = array
(
array
(
'id' => 10,
'on' => 2
),
array
(
'id' => 15,
'on' => 2
),
array
(
'id' => 20,
'on' => 2
)
);
var_dump(my_check($array, 2, 1));
Output:
int 2
示例2:
$array = array
(
array
(
'id' => 10,
'on' => 2
),
array
(
'id' => 15,
'on' => 1
),
array
(
'id' => 20,
'on' => 2
)
);
var_dump(my_check($array, 2, 1));
Output:
int 1
示例3:
$array = array
(
array
(
'id' => 10,
'on' => 4
),
array
(
'id' => 15,
'on' => 2
),
array
(
'id' => 20,
'on' => 3
)
);
var_dump(my_check($array, 2, 1));
Output:
array
0 => int 4
2 => int 3