2017-01-31 2 views
-1

나는 Elastic Search와 PHP를 사용하여 쿼리를 시도했다.배열 PHP에서 null 값을 제거하는 방법

하지만 일부 데이터는 어쩌면 비어있게되고 배열에 추가 할 수 없습니다. 이것은 내 배열입니다.

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

하지만 언제 dd(); 값이 null이고 내 쿼리가 작동하지 않는 위치 표시.

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

쿼리 작업에서이 위치 null을 제거하는 방법은 무엇입니까? 당신이 당신의 배열에서 모든 null 값을 제거하려면

+0

사용 array_filter을(). 이것을 확인하십시오 : http://php.net/manual/en/function.array-filter.php –

+0

@ B. 데 사이는 작동하지 않습니다! –

답변

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); 
관련 문제