2

私は周りを見回して、これに対する答えを見つけることができないので、このような配列が含まれているかどうか疑問に思っています..

$array['foo']['bar'][1] = '';
$array['foo']['bar'][2] = '';
$array['foo']['bar'][3] = '';
$array['foo']['bar'][4] = '';

すべての値が空かどうかを確認するにはどうすればよいですか? 私は次のことを試しました:

if (empty($array['foo']['bar'])) {
    // Array empty
}

しかし、予想通り、それはうまくいきませんでした。

これどうやってするの?

4

3 に答える 3

3

すべての値が入力されているかどうかを確認したい場合は、使用できます

 if(call_user_func_array("isset", $array['foo']['bar']))

あなたがしたいことのために、クロージャーで配列を減らすことができます

 if(array_reduce($array, function(&$res, $a){if ($a) $res = true;}))

これはphp 5.3+でのみ機能することに注意してください

于 2013-07-06T19:22:55.667 に答える
1

$array['foo']['bar']は実際には であるため、空ではありませんarray(1=>'',2=>'',3=>'',4=>'')

foreach実際にすべてが空かどうかを確認するには、ループを実行する必要があります。

$arr_empty = true;
foreach ($array['foo']['bar'] as $arr) {
    if (!empty($arr)) {
        $arr_empty = false;
    }
}
//$arr_empty is now true or false based on $array['foo']['bar']
于 2013-07-06T19:21:50.907 に答える