我有一个多维数组。我有一个多维数组,如果数组中所有的值都是空的,我想删除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]这样的完全空值的数组?
这不是完全正确的方法,但仍然有效。
$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
)
)
我建议利用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;
});
我不知道这将是多么的有效,我的头顶。