我有一个多维数组(键值),一些值没有被设置,在这种情况下是空的,如果是的话,父数组必须从主数组中删除。
我生成的代码只删除空键。
在我的示例中,IT & ES语言翻译键是空的,因此我们需要删除这个父数组。
$results = $arr =array(
[16] => Array
(
[0] => Array
(
[language] => de
[translation] => blog/beer
)
[1] => Array
(
[language] => en
[translation] => blog/some-slug-yeah
)
[2] => Array
(
[language] => es
[translation] =>
)
[3] => Array
(
[language] => fr
[translation] => blog/paris-big-city
)
[4] => Array
(
[language] => it
[translation] =>
)
[5] => Array
(
[language] => nl
[translation] => blog/nederlands-slug
)
)
[...]//more
)
函数移除键。
function array_filter_recursive($input){
foreach ($input as &$value){
if (is_array($value)){
$value = array_filter_recursive($value);
}
}
return array_filter($input);
}
$results = array_filter_recursive( $results );
发布于 2018-01-30 11:41:22
如果数组总是有两个级别,则不需要递归。
function array_filter_recursive($input){
foreach ($input as &$value){
$value = array_filter($value, function($x) { return !empty($x['translation']); });
}
return $input;
}
发布于 2018-01-30 11:25:55
如果你的结构总是这样的话:
$arr = (
[0] => Array
(
[language] => de
[translation] => blog/beer
)
[1] => Array
(
[language] => en
[translation] => blog/some-slug-yeah
)
你可以这样做:
for($i = 0; $i < count($arr); $i++}
if(!isset($arr[$i]["translation"]){
unset($arr[$i])
}
}
//re-index thee array;
$arr = array_values($arr);
https://stackoverflow.com/questions/48520122
复制相似问题