Получить ключи массива, если значение не ноль

У меня есть массив, как и использовал array_keys для получения ключей:

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

$new_arr = array_keys($arr);

Теперь я хочу получить array_keys, если значение не равно нулю. Как я могу это сделать?

Пожалуйста помоги.

3

Решение

Бежать array_filter в вашем массиве, прежде чем вы получите ключи; это удаляет 0 значений, и вы получаете только те ключи, которые вам нужны.

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

Выход

Array
(
[0] => 1
[1] => 2
[2] => 3
)
7

Другие решения

Вы можете удалить все элементы со значениями перед передачей массива для array_keys:

NULL
null
''
0

Со следующим:

array_filter($array, function($var) {
// Remove all empty values defined in the above list.
return !is_empty($var);
});
0

$num_array = array(1,2,3,4,0,0);
$zero_val  = array_keys($num_array,!0);
print_r($zero_val);
0