配列が未定義かどうかを確認するにはどうすればよいですか?私は使用isset
してempty
いますが、両方とも未定義の配列に対して機能していません。
これは私のコードです:
if (isset($content['menu']['main'])){
echo 'there is menu';
}
配列が未定義かどうかを確認するにはどうすればよいですか?私は使用isset
してempty
いますが、両方とも未定義の配列に対して機能していません。
これは私のコードです:
if (isset($content['menu']['main'])){
echo 'there is menu';
}
Rikeshとmimipcによって指定されたこのコードを使用してください
$arr = array("menu"=>array("main"=>1));
if (is_array($arr) && array_key_exists('menu', $arr)) {
echo "array";
}
あなたのコードに基づいて、あなたは関数array_key_exists()を探していると思います。
$content = array('menu'=>array());
echo isset($content);
>>> 1
echo array_key_exists('menu', $content);
>>> 1
if ( array_key_exists('main', $content['menu']) ) {
echo "Main menu exists";
} else {
echo "Main menu does not exist";
}
>>> Main menu does not exist
isset()
変数$content
が設定されているため機能しません。また、配列が空でない可能性があるため、機能しempty()
ません。main
キーが$content['menu']
配列に存在するかどうかを確認する必要があります。
配列要素が存在するかどうかは、次のコマンドで確認できますin_array
。
in_array('one', array('two', 'three', 'four')); // false
そして、あなたは配列インデックスをチェックすることができますarray_key_exists
:
array_key_exists('metallica', array('metallica' => 'worst than megadeth')); // true
このisset
関数を使用すると、配列または変数が等しくないかどうか、ブール値またはNULL
と解釈できる値が含まれているかどうか、および変数値(または配列キー/インデックス/要素)が等しいかどうかを確認するだけです。 。True
False
0
NULL
私は通常、変数が:is_null
で設定されているかどうかを確認します。これを使用して、配列インデックスまたは要素が同じ配列内に定義されているかどうかを確認できます。
編集:
変数が次の配列である(sizeof($something) > 0)
か、または次is_array
の関数で配列されているかを確認することもできます。