Php 如何查找和替换数组中的空值?

Php 如何查找和替换数组中的空值?,php,arrays,Php,Arrays,例如,我有一个数组 Array( [0] => Array ( [0] => "0" [1] => "1" ) [1] => [2] => Array ( [4] => "4" [5] => "5" [7] => "7" ) 我想找到空的数组值,并替换它 [1] => data not found 非递归: 递归: 这里是一

例如,我有一个数组

Array(
[0] => Array
    (
        [0] => "0"
        [1] => "1"
    )
[1] => 
[2] => Array
    (
        [4] => "4"
        [5] => "5"
        [7] => "7"
    )
我想找到空的数组值,并替换它

[1] => data not found
非递归:

递归:
这里是一个递归解决方案

$myArray = array(
    0 => array(
        0 => "0",
        1 => "1"
    ),
    1 => "",
    2 => array(
        4 => "4",
        5 => "5",
        7 => "7"
    )
);

function removeEmpty($arr){
    if(is_array($arr)){
        foreach($arr as &$val){
             $val = removeEmpty($val);
        }
        return $arr;
    }
    else {
        if(empty($arr) && $arr != "0") return "data not found";
    }
}

print_r(removeEmpty($myArray));

递归还是仅仅是第一级?如果它只是第一层,那么你可以直接映射它
$array=array_map(函数($value){if(empty($value)返回'data not found';return$value;},$array);
第一级,谢谢:)请注意,如果值为“0”,则为0,这仍然视为空。编辑:+1,用于将其更改为检查“”、false或null。
function replace_empty_values($arr){
    foreach($arr as &$val){
    if(is_array($val)) $val = replace_empty_values($val);
    else if($val === "" || $val === false || $val === null) $val = "data not found";
    }
return $arr;
}

$arr = array(
    0 => array(
        0 => "0",
        1 => "1"
    ),
    1 => "",
    2 => array(
        4 => "4",
        5 => "5",
        7 => "7"
    ),
    3 => array(
        8 => "",
        9 => ""
    )
);

$arr = replace_empty_values($arr);
print_r($arr);
$myArray = array(
    0 => array(
        0 => "0",
        1 => "1"
    ),
    1 => "",
    2 => array(
        4 => "4",
        5 => "5",
        7 => "7"
    )
);

function removeEmpty($arr){
    if(is_array($arr)){
        foreach($arr as &$val){
             $val = removeEmpty($val);
        }
        return $arr;
    }
    else {
        if(empty($arr) && $arr != "0") return "data not found";
    }
}

print_r(removeEmpty($myArray));