Удалить пустые элементы массива из массива, не зная ключей - PullRequest
0 голосов
/ 31 октября 2018

У меня есть массив, в котором я не знаю, как называются ключи, и я пытаюсь удалить все элементы из массива, где все вложенные ключи пусты (без значения).

Мой массив может выглядеть так. Второй элемент [1] имеет пустые значения, поэтому я хотел бы удалить его и оставить только первый элемент [0].

Array
(
    [0] => Array
        (
            [Some key here] => 26542973
            [generated key] => John
            [who knows what key] => 10
        )

    [1] => Array
        (
            [Some key here] => 
            [generated key] => 
            [who knows what key] => 
        )

)

Я попытался использовать фильтр массива, но он не удалил пустой элемент. Он оставил их обоих в массиве.

$filtered_array = array_filter($array);

Я бы хотел, чтобы конечный результат выглядел следующим образом (пустой элемент удален).

Array
(
    [0] => Array
        (
            [Some key here] => 26542973
            [generated key] => John
            [who knows what key] => 10
        )
)

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Вы можете использовать array_filter(), как показано внизу. Поэтому вам нужно объединить элементы внутреннего массива, используя implode() и проверить, что результат пуст или нет.

$arr = array_filter($arr, function($val){
    return implode("", $val) != "";
});

Результат проверки в демо

0 голосов
/ 31 октября 2018

Использование массив_карт с массив_фильтров .

$array = array(array('data1','data1'), array('data2','data2'), array('','')); 
$array = array_filter(array_map('array_filter', $array));
print_r($array);

DEMO

...