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;
}
}
如果 1. 和 2. 都不符合
怎么办function get_value( $array ){
foreach( $array as $item ){
if ( $item['on'] == 1 ){ return 1; }
if ( $item['on'] != 2 ){ return FALSE; }
}
return 2;
}
foreach($arrayelements as $arrayelement) {
if($arrayelement['on'] == 2) {
$result = 2;
return $result;
}
if($arrayelement['on'] == 1) {
$result = 1;
return $result;
}
}
有几种方法可以解决您的问题:这是我的! :)
使用以下函数,如果两者都不满足,您将获得一个不需要的值数组。
在这种情况下,您可能会更准确地告诉我们您希望获得什么。
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