ホームページ >バックエンド開発 >PHPチュートリアル >each() は 4 つの値を返し、リストはどの 2 つの値を割り当てるか

each() は 4 つの値を返し、リストはどの 2 つの値を割り当てるか

WBOY
WBOYオリジナル
2016-06-23 14:16:24833ブラウズ

each リスト

PHP は初めてですが、 each() は 4 つの値を返しますが、どのリストに割り当てるべきですか?
60b0035d7faf2542b106956137eca9b7 100, 'oil' => 10, ' スパークプラグ' => 4);
$item = each($prices);
リセット($prices); list($ a, $b) = each($prices)) {
echo "a:$a,b:$b df250b2156c434f3390392d09b1c9563" }
?>
each($prices) の値) は 4 つのキー値の配列、
Array ([1] => 100 [value] => 100 [0] => タイヤ [key] => タイヤ )

および list($a, $b ) = each ($prices)) $item[key]、$item[value] が $item[1]、$item[value] ではなく $a、$b に割り当てられているのはなぜですか。
リストには順番に値を割り当てるべきではないでしょうか?
オンラインや公式ドキュメントで検索しましたが、正確な答えはありません。解決策を求めてください


ディスカッションに返信 (解決策)
表示されなかった可能性は 2 つあります
1.

list()は数値配列でのみ機能し、数値インデックスが 0 から始まると想定します。

つまり、数値インデックスの値が最初に使用されます。

2.
list() は、右端のパラメータから始まる値を代入します。
右端のパラメータリストから、$b にインデックス 0、つまりタイヤの値が代入され、次に $a が代入されます。 1 つのインデックスの値なので、100 になります

次の事実を観察してください:

list($a, $b) = array('a', 'b');echo "a:$a b:$b\n"; //输出 a:a b:blist($a, $b) = array(1 => 'a', 0 => 'b');echo "a:$a b:$b\n"; //输出 a:b b:alist($a, $b) = array('a'=>'a', 'b'=>'b');echo "a:$a b:$b\n"; //输出 a: b:错误信息: Undefined offset: 1  Undefined offset: 0 

list は、パラメーター リストのシーケンス番号に従って、配列から対応する添え字要素を順番に抽出することがわかります

つまり、リスト内の変数の値は配列の添字の値であり、配列では添字の順序は関係ありません


では、「パラメータの右端から値を割り当てる」と具体的に記述することにどのような意味があるのでしょうかリスト"?
こちらの書き方をご覧ください

list($a[$b][$c], $b, $c) = array('a', 'b', 'c');print_r($a);
Array
(
[b] => Array
(
[c] => a
)
)
$c は $a より前に $b が代入されるので、 $a よりも前[$b][$c] 値を割り当てるときに間違いはありません


上の 2 人の学生に感謝します。
主にこの文を本当に聞き逃したからです。
list() は数値配列でのみ機能し、数値を仮定しますインデックスは 0 から始まります。

list() はインデックスが 0 から始まる数値配列でのみ機能します

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。