如何查找哪个数组键的值大于0

时间:2016-11-10 04:33:09

标签: php

我有以下方式的关联数组,

$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
} 

谢谢,有人请指教。

1 个答案:

答案 0 :(得分:4)

使用array_filter过滤掉空值。

$fruit = key(array_filter($data));

$fruit将包含数字大于零的值。

如果多个键的值大于零,请使用array_keys代替key

$fruit = array_keys(array_filter($data));