今回はPHPのプログラムを組んでいて、 関数array_keysを利用して配列のキーの中に、指定されたキーの存在チェックを行う為に 使っていたのですが、指定されたキーが無かった場合はどうなるのかなと思い、調べてみました。
PHPの公式のマニアルには以下の様な例が載っています。
<?php
$array = array(0 => 100, "color" => "red");
print_r(array_keys($array));
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "blue"));
$array = array("color" => array("blue", "red", "green"),
"size" => array("small", "medium", "large"));
print_r(array_keys($array));
?>
これを実行すると以下の様になります。
Array
(
[0] => 0
[1] => color
)
Array
(
[0] => 0
[1] => 3
[2] => 4
)
Array
(
[0] => color
[1] => size
)
確かにこれで例としては問題無いのですが、結果としてキー値が返るものしか載っていません。 まあ、該当しないキー値を指定した場合は自分で調べればいいのですが。 そこで、2番目の例で、キーが存在しない yellow でやってみました。
<?php
$array = array("blue", "red", "green", "blue", "blue");
print_r(array_keys($array, "yellow"));
?>
この結果は、以下の様になります。
Array ( )
結果としては、空のarrayが返ります。 この結果に対して、count()を取ってやれば、0となります。 また、foreachで処理しても結果の配列は空なので、以下の様に処理されないことになります。
<?php
$array = array("blue", "red", "green", "blue", "blue");
/* array_keys:配列内にデータが存在 */
foreach (array_keys($array, "blue") as $arrValue) {
echo "KEY=".$arrValue."\n";
}
/* array_keys:空の配列が返る */
foreach (array_keys($array, "yellow") as $arrValue) {
echo "KEY=".$arrValue."\n";
}
?>
PHPのマニアルも空の配列の例が載っていると助かるのですが・・・
PR
コメント