2017-01-31 4 views
-1

Я попытался сделать запрос, используя Elastic Search и PHP.Как удалить нулевые значения в Array PHP

Но некоторые данные могут быть пустыми и не могут быть добавлены в массив. Это мой массив:

 $query = $this->elasticParams['body'] = [ 
      'sort' => [ 
       'price' => 'asc' 
      ], 
      'query' => [ 
       'bool' => [ 
        'must' => [empty($should) ? null : $should, $range], 
       ] 
      ], 
      'size' => 1000 
     ]; 

Но когда do dd(); показать позицию со значением null и не обработать мой запрос.

array:3 [▼ 
    "sort" => array:1 [▶] 
    "query" => array:1 [▼ 
    "bool" => array:1 [▼ 
     "must" => array:2 [▼ 
     0 => null 
     1 => array:1 [▶] 
     ] 
    ] 
    ] 
    "size" => 1000 

Как удалить эту позицию в мой запрос?

+0

использовать array_filter(). проверьте это: http://php.net/manual/en/function.array-filter.php –

+0

@ B.Desai не работает! –

ответ

0

Если вы хотите удалить все нулевые значения из вашего массива, попробуйте следующее:

$my_array = array('sort' => array(
       'price' => 'asc' 
      ), 
      'query' => array(
       'bool' => array(
        'must' => array(0 => null, 
            1 => array(12), 
            ), 
           ), 
          ), 
      'size' => 1000 
     ); 

function array_remove_null($input){ 
    foreach ($input as &$value){ 
     if (is_array($value)){ 
      $value = array_remove_null($value); 
     } 
    } 
    return array_filter($input); 
} 

$my_array = array_remove_null($my_array); 
Смежные вопросы