PHP 配列の走査について話しましょう。配列の走査について何を言うのかと疑問に思う人もいるでしょう。実際には、PHP 配列の走査が最悪というわけではありません。 PHP コードの比較については以下で詳しく説明します。
C++ と C# は、配列を定義するときに、配列変数に加えて、for ループを使用してオフセットをインクリメントすることを誰もが知っています。 for ループでは、C# では foreach を使用して配列を走査することもできます。php ではどうですか? ?次のようなコードをよく見かけます:
<?php $arr = array( 0=>"zxp", 1=>"male", 2=>"北京西三旗" ); for($i=0;$i<count($arr);$i++) { echo $arr[$i]; } ?>
この種のコードは当面は問題ありませんが、耐障害性が非常に低く、堅牢性も非常に低いため、誤って動作する可能性があります。 PHP 配列は連続メモリ空間ではなく、連続オフセットを使用して配列を走査することはできません。また、PHP 配列はスケーラブルです。たとえば、上記のコード $arr が要素 $arr[5]=5 を挿入する場合、for はスケーラブルです。ループが間違っているはずです。
PHP の配列走査では、foreach と while を使用します。これらの 2 つの走査メソッドを以下に示します。
<?php $arr = array( //"comment"=>"personal information", 0=>"zxp", 1=>"male", "age"=>29, 2=>"北京西三旗" ); $arr[4] = "高级开发工程师"; foreach ($arr as $key => $value) { echo $key.':'.$value.'</br>'; } ?>
上記のコードのように、走査は foreach に渡され、走査される配列要素については、キー名が $key に割り当てられます。値は $ 値に代入されます。
<?php $arr = array( 0=>"zxp", 1=>"male", "age"=>29, 2=>"北京西三旗" ); reset($arr); while (list($key,$value) = each($arr)) { echo $key.':'.$value.'</br>'; } ?>
上記のコードでは、配列のトラバーサルが each 関数に渡されます。 while ループとリスト操作、および各関数を使用して PHP 配列を走査する場合は、注意する必要があります。while ループの前に、reset 関数を呼び出して配列ポインターを最初の要素にポイントします。そうしないと、次のことがわかります。通過した要素だけでは十分ではありません。