如何检查和删除多维数组中的完全空值数组?

问题描述 投票:0回答:1

我有一个多维数组。我有一个多维数组,如果数组中所有的值都是空的,我想删除arrya。

"qualifications" => array(
[0] => array(
  "qualifications" => "demo"
  "acquisition_date" => null
),
[1] => array(
  "qualifications" => null
  "acquisition_date" => null
),
[2] => array(
  "qualifications" => "test"
  "acquisition" => 123
)
);

我想删除index[1]这样的数组。我正在尝试下面的代码。

$educationalEmptyArray = 'false';
    if (!array_filter(array_map('array_filter', $educational))) {
        $educationalEmptyArray = 'true';
    }

如何解除或删除像index[1]这样的完全空值的数组?

php laravel multidimensional-array
1个回答
1
投票

这不是完全正确的方法,但仍然有效。

   $input = array(
        '0' => array(
        "qualifications" => "demo",
        "acquisition_date" => null
        ),
        '1' => array(
        "qualifications" => null,
        "acquisition_date" => null
        ),
        '2' => array(
        "qualifications" => "test",
        "acquisition" => 123
        )
    );
    $output = array();
    foreach($input as $array) {
        foreach($array as $key=>$value){
            if($array[$key]){
                array_push($output,$array);
                break;
            }
        }
    }

$output数组完全删除了像index[1]数组这样的空值数组.上面的代码给出了下面的输出:

Array
(
    [0] => Array
        (
            [qualifications] => demo
            [acquisition_date] => 
        )

    [1] => Array
        (
            [qualifications] => test
            [acquisition] => 123
        )

)

0
投票

我建议利用Laravel Collection因为它使这种操作更容易。有很多很多的方法可以做到这一点,但这应该做的伎俩。

$collection = collect($educational)->reject(function ($items) {
    foreach ($items as $item) {
        if ($item !== null) {
            // We have an actual value so we can safely ignore and return early
            return false;
        }
    }
    // We didn't find a non-null value, so we reject this array
    return true;
});

我不知道这将是多么的有效,我的头顶。

© www.soinside.com 2019 - 2024. All rights reserved.