ホームページ  >  記事  >  バックエンド開発  >  それぞれの使用例とリストをphpで詳しく解説

それぞれの使用例とリストをphpで詳しく解説

伊谢尔伦
伊谢尔伦オリジナル
2017-06-23 13:33:231389ブラウズ

1.each

の使用法 まず、API

array each ( array &$array )

api を見てみましょう。これは次のように説明されています: eacharray 内の現在のキーと値のペアを返し、配列ポインタを 1 ステップ先に移動します。

まず、返された配列がどのようなものかを見てみましょう。

<?php 

$arr = array(&#39;你&#39;,&#39;若&#39;,&#39;安&#39;,&#39;好&#39;,&#39;便&#39;,&#39;是&#39;,&#39;晴&#39;,&#39;天&#39;);
print_r(each($arr));
print_r(each($arr));
echo &#39;<hr />&#39;;
/*
返回
Array
(
    [1] => 你
    [value] => 你
    [0] => 0
    [key] => 0
)
Array
(
    [1] => 若
    [value] => 若
    [0] => 1
    [key] => 1
)
*/
//执行相同的一段代码,从‘你’到‘若’,说明each是会每执行一次,游标向数组尾部移动一步
//0和Key存放的是键
//1和value存放的是值
//因此each满足遍历数组的,得到当前的键和值,以及每执行一次,向尾部移动一步游标
//因此循环数组也可以用each这么写
reset($arr);
for(;$tmp=each($arr);){
	echo $tmp[0],&#39;~&#39;,$tmp[1],&#39;<br />&#39;;
}
/*
返回
0~你
1~若
2~安
3~好
4~便
5~是
6~晴
7~天
*/
?>

2. list の使い方

まず API の内容を見てみましょう

array() と同様、これは実際の

関数 ではなく、言語構造です。 list() は、1 つのステップで 変数 のセットに値を割り当てます。

例を見てみましょう:

<?php 

list($a,$b)=array(10,20);
echo $a,&#39;~&#39;,$b,&#39;<br />&#39;;
//返回10~20
?>

はい、一連の変数に値を割り当てることができます

別の例を見てみましょう:

<?php 

list($a,$b,,$c)=array(2=>10,3=>20,4=>30,1=>40);
echo $a,&#39;~&#39;,$b,&#39;~&#39;,$c,&#39;<br />&#39;;
//返回notice~40~20
//执行到$a的时候返回给我一个notice:说数组没有0键
?>

一般的な考え方によれば、次の値が返されるはずです: 10~20~40

この通知が返されるのはなぜですか? ~40~20 についてはどうですか?

答え: これにはリストの操作メカニズムが関係します

まず第一に、右側の配列を無視して、リスト内の変数を左から右に見てください。 be $a = arr[0] $ b=arr[1] $c=arr[3]

次に、右から左に値の割り当てを開始します。割り当ての順序は $c=arr[3] $b です=arr[1] $a=arr[0]

なので、$c=20 $b = 40 arr[0]がないので、$aは警告を出します

3. eachとlistを使って実装します

。配列トラバーサル

<?php 

$arr = array(&#39;你&#39;,&#39;若&#39;,&#39;安&#39;,&#39;好&#39;,&#39;便&#39;,&#39;是&#39;,&#39;晴&#39;,&#39;天&#39;);
for(;list($k,$v)=each($arr);){
	echo $k,&#39;~&#39;,$v,&#39;<br />&#39;;
}
/*
return:
0~你
1~若
2~安
3~好
4~便
5~是
6~晴
7~天
*/
?>

以上がそれぞれの使用例とリストをphpで詳しく解説の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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