如何在Array PHP中删除空值

时间:2017-01-31 11:32:35

标签: php arrays elasticsearch

我尝试使用Elastic Search和PHP进行查询。

但是有些数据可能会变空,而不能添加到数组中。这是我的阵列:

        $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

如何将此位置删除为我的查询工作?

1 个答案:

答案 0 :(得分: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);