Php 检查多维数组中键的值是否为空

Php 检查多维数组中键的值是否为空,php,multidimensional-array,Php,Multidimensional Array,我需要一个简单而优雅的解决方案来检查多维数组中的键是否有空值。应该返回true/false 如下所示,但对于多维数组: if (empty($multi_array["key_inside_multi_array"])) { // Do something if the key was empty } 我发现的所有问题都是在多数组中搜索特定值,而不是简单地检查键是否为空并返回真/假 这里有一个例子: $my_multi_array = array( 0 =>

我需要一个简单而优雅的解决方案来检查多维数组中的键是否有空值。应该返回true/false

如下所示,但对于多维数组:

if (empty($multi_array["key_inside_multi_array"])) {
  // Do something if the key was empty
}
我发现的所有问题都是在多数组中搜索特定值,而不是简单地检查键是否为空并返回真/假

这里有一个例子:

$my_multi_array = array(    
        0 =>  array(  
            "country"   => "",  
            "price"    =>  4,  
            "discount-price"    =>  0,  
        ),  
);
这将返回true:

$my_key = "country";

if (check_multi_array_for_empty_value($my_multi_array, $my_key)) {
  //Run this code here because the "country" key in my multi dimensional array is empty 
}
$my_key = "discount-price";

if (check_multi_array_for_empty_value($my_multi_array, $my_key)) {
  //Run this code here because the "discount-price" key in my multi dimensional array is empty
}
这也将返回true:

$my_key = "country";

if (check_multi_array_for_empty_value($my_multi_array, $my_key)) {
  //Run this code here because the "country" key in my multi dimensional array is empty 
}
$my_key = "discount-price";

if (check_multi_array_for_empty_value($my_multi_array, $my_key)) {
  //Run this code here because the "discount-price" key in my multi dimensional array is empty
}
这将返回false:

$my_key = "price";

if (check_multi_array_for_empty_value($my_multi_array, $my_key)) {
  //This WILL NOT RUN because the "price" key in my multi dimensional array is NOT empty
}
当我说空的时候,我的意思是像这样

更新:

$my_multi_array = array(    
        0 =>  array(  
            "country"   => "",  
            "price"    =>  4,  
            "discount-price"    =>  0,  
        ),  
);
我正在尝试修改源代码,但到目前为止没有任何运气。以下是我迄今为止所掌握的信息,如有任何帮助,将不胜感激:

function bg_empty_value_check($array, $key)
{
    foreach ($array as $item)
    {
        if (is_array($item) && bg_empty_value_check($item, $key)) return true;
        if (empty($item[$key])) return true;
    }
    return false;
}

你必须调用递归函数,例如我有多维数组

function checkMultiArrayValue($array) {
        global $test;
        foreach ($array as $key => $item) {

            if(!empty($item) && is_array($item)) {
                checkMultiArrayValue($item);
            }else {
                if($item)
                 $test[$item] = false;
                else
                 $test[$item] = true;
            }
        }
        return $test;   
    }

 $multiArray = array(    
                0 =>  array(  
                      "country"   => "",  
                      "price"    => 4,  
                      "discount-price" => 0,  
               ),);

$test = checkMultiArrayValue($multiArray);
echo "<pre>"
print_r($test);
函数检查MultiArrayValue($array){
全球美元测试;
foreach($key=>$item的数组){
if(!empty($item)&&is_数组($item)){
checkMultiArrayValue($item);
}否则{
若有($项目)
$test[$item]=false;
其他的
$test[$item]=true;
}
}
返回$test;
}
$multiArray=数组(
0=>数组(
“国家”=>“”,
“价格”=>4,
“折扣价格”=>0,
),);
$test=checkMultiArrayValue($multiArray);
回声“”
打印(测试);

将返回带有true和false的数组,具有key和index的数组将包含true,具有index但不具有value的数组将包含false,您可以在检查条件的位置使用此数组。下面的函数可以帮助您检查嵌套数组中的空值

$my_multi_array = array(    
    0 =>  array(  
        "country"   => "aa",  
        "price"    =>  1,  
        "discount-price"    =>  0,  
    ),  
);
// Call
$checkEmpty = $this->boolCheckEmpty($my_multi_array, 'price');
var_dump($checkEmpty);
用法:

$my_multi_array = array(    
        0 =>  array(  
            "country"   => "",  
            "price"    =>  4,  
            "discount-price"    =>  0,  
        ),  
);

注意:如果值为0,则此函数也会返回false,因为使用了

是否要签入多维数组键have value???@nagennayak yes。如果键有值,则返回true;如果没有值,则返回false。您必须正确搜索并获得答案@nageennayak我看到了,但它正在搜索特定的值。如果为空,则不返回true或false。@Nagennayak这看起来是最有趣的
$key=array\u搜索(40489,array\u列($userdb,'uid')但是,它再次搜索一个值。如果为空,则不返回true/false。我认为这不起作用。该函数只接受一个参数$array。我需要两个参数,$array来定义要检查的数组,$key来定义要检查的键不是空的。而且这不会返回true或false。它需要检查密钥是否为空,并返回true或false。请发布您的测试数组和密钥,同时发布您想要的输出。所以我完全知道你想要什么。再次更新,有更好的例子。