2017-01-31 3 views
-1

Ich habe versucht, eine Abfrage mit Elastic Search und PHP gemacht.So entfernen Sie Nullwerte in Array PHP

Aber einige Daten möglicherweise leer und nicht kann in Array hinzugefügt werden. Das ist mein Array:

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

Aber wann dd(); Zeige eine Position mit Wert null und habe meine Abfrage nicht bearbeitet.

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

Wie diese Position Null zu meiner Abfrage Arbeit entfernen?

+0

Verwendung array_filter(). überprüfen Sie dies: http://php.net/manual/en/function.array-filter.php –

+0

@ B.Desai funktioniert nicht! –

Antwort

0

Wenn Sie alle NULL-Werte von Array entfernen wollen, dann versuchen Sie dies:

$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);