2015-02-06 5 views
-2

Я проверяю массив значений пустым или нет, как следующее:Найти пустые индексы массива функционируют

Длинный формат:

$empty = array(); 
foreach($array as $value) 
    if(empty($value)) $empty[] = $value; 

Ожидаемая функция:

$empty = array_empty_values($array); 

Есть ли функция, как array_empty_values() что найти пустые индексы массива?

ответ

1

Использование array_filter PHP встроенная функция

function filter_empty($var) { 
    return empty($var); 
} 

$result_array = array_filter($your_array, "filter_empty"); 

$your_array = array(1,'2','3',false,''); 
$result_array = array_filter($your_array, "filter_empty"); 
echo print_r($result_array, true); 

напечатает

Array 
(
    [3] => 
    [4] => 
) 

Если вам нужны только индексы можно использовать array_keys встроенную функцию

echo print_r(array_keys($result_array), true); 

, который будет печатать

Array 
(
    [0] => 3 
    [1] => 4 
) 
+0

@ Rizier123: Нет, это наоборот :) – DonCallisto

+0

Извините, просто увидел: D (BTW: Это тоже работает: '$ result_array = array_diff ($ arr, array_filter ($ arr)); OP не нужно писать дополнительную функцию – Rizier123

+0

@ Rizier123: да, это действительная альтернатива – DonCallisto

0

Вам нужен массив с ключами, а не со значениями. потому что значения пустые.

/** 
* Get keys of empty array values 
* @param array $array The array to check. 
* @return array The keys of the empty values. 
*/ 
array_empty_values($array) { 
    $empty = array(); 
    foreach($array as $key => $value) { 
     if(empty($value)) { 
      $empty[] = $key; 
     } 
    } 
    return $empty; 
} 
2

Если вы хотите, чтобы проверить и удалить пустой элемент массива, вы можете проверить эту функцию в PHP array_filter()

array_filter принимает массив в качестве входных данных и удаляет все элементы, которые равны нуля/0/flase

+0

Ах, просто прочитайте вопрос и ответ: OP не хочет удалять пустые значения, которые он хочет в массиве – Rizier123

+0

Упс! Мой плохой: D извините. то мы можем использовать '$ result_array = array_diff ($ input, array_filter ($ input)),' этот фрагмент, чтобы получить то, что он пытается получить. –

Смежные вопросы