Php 如何检查并从多维数组中删除完全空值数组?
我有多维数组。如果数组的所有值都为空,我想删除arrya。 我有以下数组:Php 如何检查并从多维数组中删除完全空值数组?,php,laravel,multidimensional-array,Php,Laravel,Multidimensional Array,我有多维数组。如果数组的所有值都为空,我想删除arrya。 我有以下数组: "qualifications" => array( [0] => array( "qualifications" => "demo" "acquisition_date" => null ), [1] => array( "qualifications" => null "acquisition_date" => null ), [2] => array(
"qualifications" => array(
[0] => array(
"qualifications" => "demo"
"acquisition_date" => null
),
[1] => array(
"qualifications" => null
"acquisition_date" => null
),
[2] => array(
"qualifications" => "test"
"acquisition" => 123
)
);
我想删除类似数组的索引[1]。
我正在尝试使用以下代码:
$educationalEmptyArray = 'false';
if (!array_filter(array_map('array_filter', $educational))) {
$educationalEmptyArray = 'true';
}
如何取消设置或删除完全空值数组,如索引[1]数组。我建议为此利用Laravel
集合
s,因为它使此类操作更容易。有很多很多方法可以做到这一点,但这应该可以做到
$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;
});
我不确定这样做的效率有多高。这不是正确的方法,但仍然有效:
$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数组完全删除空值数组,如索引[1]数组。
上述代码给出了以下输出:
Array
(
[0] => Array
(
[qualifications] => demo
[acquisition_date] =>
)
[1] => Array
(
[qualifications] => test
[acquisition] => 123
)
)
到目前为止你尝试了什么?@Spholt我正在尝试$educationalEmptyArray='false';如果(!array_filter(!array_filter('array_filter',$educational)){$educationalEmptyArray='true';}但它对我不起作用。这个代码checkd数组是否完全为空,但不能完全删除空值数组,在这里的注释中可读吗?编辑您的问题并将其添加到那里