2012-01-15 16 views
-1

次のループを使用して、値とキーフィールドの両方が必要な配列をトラバースしています。値がゼロのPHPトラバース配列

while ($value = current($a)) { 

echo "$value ".key($a).'<br />'; 
next($a); 
} 

問題がトラバースだけ「0」がiはゼロ値を持つ配列をトラバースすることができる任意の方法は、(アレイのサイズが変化する)while文のsays.Isとしてアレイで遭遇されまで行われることです値とキーの両方を取得します。

+2

使用すると、代わりに 'foreach':http://php.net/manual/en/control-structures.foreach .php(これは、whileループよりも配列をトラバースする方法として一般的です)。 –

+0

foreachで私は鍵の値を得ることができません – deXter

+0

もちろんです。あなたはドキュメントを見ましたか? –

答えて

2

だけforeach -loopを使用します。

foreach($a as $key => $value) { 

    echo "$value $key <br />"; 

} 

それははるかに簡単だと正確にあなたが探しているもののように聞こえます。

3

ループ条件のために使用key代わりにcurrentnullにその値を比較:

key()機能は、単に現在の内部ポインタによって指されていた配列要素のキーを返します。ポインタを決して動かすことはありません。内部ポインターが要素リストの末尾を指しているか、配列が空の場合、key()NULLを返します。

while (($key = key($a)) !== null) { 
    $value = value($a); 
    echo "$value $key<br />"; 
    next($a); 
} 

しかし、はるかに便利な方法ではなくforeachを使用することになります。

foreach ($a as $key => $value) { 
    echo "$value $key<br />"; 
}