3

我有类似数组并使用 array_keys 来获取密钥:

$arr =  array(  1 => 1,
        2 => 3,
        3 => 2,
        5 => 0,
        6 => 0 );

$new_arr = array_keys($arr);

现在,如果值不为零,我想获取 array_keys 。我怎样才能做到这一点?

请帮忙。

4

3 回答 3

7

array_filter在获得密钥之前在您的阵列上运行;删除 0 值,你只得到你需要的键。

$new_arr = array_keys(array_filter($arr));

输出

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
于 2014-11-19T04:59:39.993 回答
0

您可以在传递数组 for 之前删除所有具有值的元素array_keys

NULL
null
''
0

具有以下内容:

array_filter($array, function($var) {
  // Remove all empty values defined in the above list.
  return !is_empty($var);
});
于 2014-11-19T05:13:52.100 回答
0
$num_array = array(1,2,3,4,0,0);
$zero_val  = array_keys($num_array,!0);
print_r($zero_val);
于 2014-11-19T05:21:11.897 回答