我有以下方式的关联数组,
$data = array(
'apple'=>0,
'orange'=>5,
'mango'=>0
);
如您所见orange
,唯一的键值大于0
。假设apple
的值大于0
。其他值得0
。如果mango
的值大于0
,则其他值为0
。
我想找到哪个键的值大于0。
我可以用以下方式编写,但是有最简单的方法可以做到这一点。因为假设我有一个包含大量元素的数组,我想这不是一个合适的方法。
if(!empty($data['apple'])&&empty($data['orange'])&&empty($data['mango'])){
// apple has value larger than 0
}else if(empty($data['apple'])&&!empty($data['orange'])&&empty($data['mango'])){
// orange has value larger than 0
}else if(empty($data['apple'])&&empty($data['orange'])&&!empty($data['mango'])){
// mango has value larger than 0
}
谢谢,有人请指教。
答案 0 :(得分:4)
使用array_filter
过滤掉空值。
$fruit = key(array_filter($data));
$fruit
将包含数字大于零的值。
如果多个键的值大于零,请使用array_keys
代替key
$fruit = array_keys(array_filter($data));