-1

みんな。このコードをテスト php に記述します。ブラウザで実行すると、最初の配列の最初の文字が表示されるだけです。さらに、ここに私のコードがあります:

$args = array ('computer'=>'pentium', 'notebook'=>'atom', 'gadget'=>'tab'); foreach ($args as $key => $val) {echo $key['val'];}

私のブラウザの結果は「cng」で、c = コンピューター、n = ノートブック、g = ガジェットだと思います。

それで、誰かがそれがどのように起こるか私に説明してくれますか?

前もって感謝します

4

2 に答える 2

8

PHP は評価$key['val']され$key[0]、各「キー」の最初の文字が表示されます

あなたの例で$keyは、 は配列ではなく、 を含む文字列computernotebookまたはgadgetを介し​​たそれぞれの反復$argsです。文字列に対して配列キー構文を呼び出しているため、 PHP'val'は整数として評価します。

PHPドキュメントから

$str[42] のように、角かっこを使用して、文字列の後に目的の文字のゼロベースのオフセットを指定することにより、文字列内の文字にアクセスして変更できます。この目的では、文字列を文字の配列と考えてください。関数 substr() および substr_replace() は、複数の文字を抽出または置換する場合に使用できます。

于 2013-07-10T13:42:49.953 に答える
0

「Foreach」ループは、その長さに応じて配列を反復処理します。配列内の値とキーを分離し、それらを文字列に変換します。たとえば、次の出力が得られるとループが繰り返される場合などです。

     echo $key; // "computer"
     echo $val; // "pentium"

すべての反復で $val を使用するだけで値を取得できます。したがって、反復ごとに、配列内の値に応じて $key と $value の新しいペアが作成されます。あなたがそれを得る願っています。

于 2013-07-10T14:02:34.880 に答える