0

次の配列を検討してください

$arr1=array('a'=>2,'b'=>22,'c'=>4,'d'=>10)

今、

print_r(array_keys($arr1));

出力は

Array ( [0] => a [1] => b [2] => c [3] => d )  

array_keys の戻り値の型は配列なので問題ありません。出力としてもecho array_keys($arr1);提供Arrayします。

しかし、

foreach(array_keys($arr1) as $key)
 {
     echo $key.'<br/>';
  }

出力は次の出力を期待していたので、ここでabcdどのように機能しているかを誰かが説明できますかforeach

[a] => 2 
[b] => 22 
[c] => 4 
[d] => 10 

期待される出力を表示するために、より良いコードは必要ありません。この場合、foreach がどのようにループしているかを知りたいだけです。

4

5 に答える 5

2

array_keys($arr1)配列キーを取得するので、["a","b","c","d"] をループします。

さらに、出力するため、出力print_r(array_keys($arr1))が間違っています:

Array
(
    [0] => a
    [1] => b
    [2] => c
    [3] => d
)

あなたが書いたものではありません

私はあなたを引用します:

今、

print_r(array_keys($arr1)); 出力は

配列 ( [a] => 2 [b] => 22 [c] => 4 [d] => 10 )

これは正しくありません

于 2013-04-24T11:21:25.453 に答える
0

それが単に仕組みだからforeachです。array_keys配列のキー(「a」、「b」、...)を返すのでarray_keys($arr1)、 と同じArray("a","b","c","d")です。

Array( [0] => "a", [1] => "b", ... )

配列内のキーと値の両方を反復したいので、単に使用する必要があります

foreach($arr1 as $key => $value){
    echo "[{$key}] = {$value}<br/>";
}
于 2013-04-24T11:20:56.677 に答える
0

関数 array_keys は、配列のすべてのキーを返します。欲しいものを手に入れるには、このようなものを使うべきです

foreach($arr1 as $key => $value) {
    echo $key . "=>" . $value;
}
于 2013-04-24T11:21:40.410 に答える