私は配列を持っています。
$arrayVar = array(8, 10, 'u'=>24, 'm'=>45, 54, 45);
foreach($arrayVar as $curK=>$curV)
switch($curK)
{
case 'u':
echo $curK; //statement
break;
default:
//statements
}
ラベルが $curK の値と一致する場合を除いて、配列キーが指定されていないすべての $curK に対して最初のケースのステートメントが実行されるのはなぜですか?
$curK の空の値をチェックして問題を解決しようとしました
if(!empty($curK)) {
foreach($arrayVar as $curK=>$curV)
switch($curK)
{
case 'u':
echo $curK; //statement
break;
}
}
...
$arrayVar = array('a'=>8400,'u'=>1100,1300,1400,true);
echo '<pre>'; print_r($arrayVar);
foreach($arrayVar as $curK=>$curDU)
{
echo "\n" . $curK . "\t";
switch($curK)
{
case 'a':
echo 'When a : ' . $curK . "\n";
break;
case 'u':
echo 'When u : ' . $curK . "\n";
break;
default:
}
}
これは私が得た結果です
配列 ( [a] => 8400 [u] => 1100 [0] => 1300 [1] => 1400 [2] => 1 )
a : a の場合
u u : u の場合
0 の場合 : 0
1
2
この問題は、php に割り当てられたキー 0 で発生しました。