Javascript-форум (https://javascript.ru/forum/)
-   Серверные языки и технологии (https://javascript.ru/forum/server/)
-   -   Не работает array_filter (https://javascript.ru/forum/server/60692-ne-rabotaet-array_filter.html)

K_PECT 14.01.2016 19:27

Не работает array_filter
 
Здравствуйте! Ближе к делу.
Помогите заставить работать array_filter.
Нужно убрать значения с null и соответствующие ключи.
Вот массив:
$cart = array(
  "id" => 'id',     
  "number" => 'number',     
  "order" => array(
   array(
      "name" => 'Петя',
      "size" => '1'
   ),
    array(
      "name" => null,
      "size" => null
   )
  )
);

Пробую так:
$filter = array_filter($cart);
$json = json_encode($filter);
echo $json;

Не работает!
Помогите, пожалуйста

laimas 15.01.2016 11:51

Цитата:

Сообщение от K_PECT
Нужно убрать значения с null и соответствующие ключи.

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

И корзина товаров ни как не может содержать "name" => 'Петя', вот хоть убей ее, но не не царское это дело.

K_PECT 15.01.2016 20:52

Может кому-то пригодится:
function array_filter_recursive($input) { 
    foreach ($input as &$value) { 
        if (is_array($value)) { 
            $value = array_filter_recursive($value);
        }
    }
    return array_filter($input); 
}
$filter = array_filter_recursive($cart);


Часовой пояс GMT +3, время: 22:41.