あなたの難しさは、配列を定義する方法です:
$array=array(0=>"hello",
1=>"world",
2=>"this",
3=>"is",
4=>"an",
20=>"array",
21=>"code" );
PHP の配列は実際にはハッシュマップです。上記の配列でindex を呼び出すと5
、未定義になります。最大 20 のインデックス アイテムは定義されず、これらは次のように通知されます。
PHP Notice: Undefined offset: 5
反復変数として配列の長さを使用し、その変数を正確に呼び出すため、コード内で位置 20 と 21 を取得することはありません。
これは、アレイがコンピューターにどのように見えるかです。
0 => "hello"
1 => "world"
2 => "this"
3 => "is"
4 => "an"
5 => NULL
6 => NULL
7 => NULL
... //elided for succinctness
19 => NULL
20 => "array"
21 => "code"
あなたが呼び出すとき、$array[7]
それは何も返すことができません。呼び出す$array[20]
と、「配列」が返されます。
本当に必要なのは foreach ループです。
foreach($array as $key => $val) {
//key will be one of { 0..4, 20..21}
echo "$key is $value\n";
}
その結果:
$ php test.php
0 is hello
1 is world
2 is this
3 is is
4 is an
20 is array
21 is code
for ループを使用する必要がある場合:
$key_array = array_keys($array);
for($i=0;$i<count($key_array);$i++){
$key = $key_array[$i];
echo "$key => ".$array[$key]."\n";
}
これはクリーンなソリューションではないことに注意してください。