2017-01-31 8 views
-1

私はElastic SearchとPHPを使用してクエリを作成しようとしました。ArrayのPHPでnull値を取り除く方法

しかし、いくつかのデータが空になり、配列に追加できないことがあります。これは私の配列です:

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

しかし、いつdo d();値がnullの位置を表示し、クエリが機能しない。

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

このポジションnullをクエリの仕事に削除するにはどうすればよいですか?

+0

使用array_filterを()。これを確認してください:http://php.net/manual/en/function.array-filter.php –

+0

@ B.デサイは動作しません! –

答えて

0

あなたは、アレイからすべてのnull値を削除したい場合は、この試してみてください。

$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); 
関連する問題