Php 检查数组是否有一个或多个空键,而不是删除父数组

Php 检查数组是否有一个或多个空键,而不是删除父数组,php,arrays,Php,Arrays,我有一个多维数组键值,有些值没有设置,在这种情况下为空,如果是这样,父数组必须从主数组中删除 我生成的代码只删除空键 在我的示例中,IT&ES语言转换键为空,因此我们需要删除此父数组 $results = $arr =array( [16] => Array ( [0] => Array ( [language] => de

我有一个多维数组键值,有些值没有设置,在这种情况下为空,如果是这样,父数组必须从主数组中删除

我生成的代码只删除空键

在我的示例中,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 );

如果你的结构总是这样:

$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);

如果数组总是有两个级别,则不需要递归

 function array_filter_recursive($input){
        foreach ($input as &$value){
            $value = array_filter($value, function($x) { return !empty($x['translation']); });
        }
        return $input;
    }