PHP ループは配列とリストを組み合わせて使用します
foreach の使用法:
1. 使い方1
??$arr=array(
「チャン・サン」
、
「李思」
、
「王五」
、
「马六」
);
??
foreach
($arr
として
$value)
??echo $value.'
';
?>
2. 使い方2
$arr=array('中国語'=>130,'数学'=>140,'英語'=>135,'コンピュータ'=>130);
foreach($arr as $key=>$value)
echo $key.':'.$value.'
';
?>
3. コピーまたは引用
を押します
デフォルトでは、コピーを押します。これは関数
とよく似ています。
????$arr=array(1,2,3,4);
????foreach($arr as $value)
????$value*=2;//実際、変更点は、コピーが元の配列に影響を与えないことです
????print_r($arr);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
?>
ただし、アンパサンドを使用して参照メソッドに変更できます:
????$arr=array(1,2,3,4);
????
foreach
($arr
として
&$value)
????$value*=2;
????print_r($arr);//Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
?>
4.for ループ
$arr=array(1,2,3,4,5);
for
($i=0;$i
echo $arr[$i].'
';
?>
5.それぞれ/リスト
使用するたびに 4 要素の配列を取り出します。0、key はキーに対応し、1、value は値に対応します:
$arr = array(
"張三"
、
「李思」
、
「王五」
);
$bar = each($arr);
print_r($bar);//Array ( [1] => Zhang San [value] => Zhang San [0] => 0 [key] => 0 )
?>
リストの使用法:
$arr = array(
"張三"
、
「李思」
、
「王五」
);
list($a[0], $a[1], $a[2]) = $arr;
print_r($a);
//Array ( [2] => Wang Wu [1] => Li Si [0] => Zhang San )
?>
それぞれでリストを使用します:
$arr = array(
"張三"
=>20、
「李思」
=>29、
「王五」
=>23);
その間
(list($key, $value) = each($arr))
echo
"$key=>$value"
.'
';
?>
メモしながら
(list($key, $value) = each($arr)) では、それぞれで得られた 4 要素の配列内の 2 つの数値インデックスが、リスト内の 2 つの変数にそれぞれ割り当てられます。
だから
$arr = array(
"張三"
,'b'=>
"李思"
、
「王五」
);
list($a[0], $a[1]) = $arr;
print_r($a);
//Array ( [1] => Wang Wu [0] => Zhang San )
?>
6. 多次元配列
$a = array();
$a['山東'][0] =
"済南"
;
$a['山東'][1] =
"威海"
;
$a['黒龍江'][0] =
「ハルビン」
;
$a['黒龍江'][1] =
"チチハル"
;
foreach
($a
として
$key1=>$v1) {
??echo
"$key1"
.'
';
???????
foreach
($v1
として
$v2) {
?????????????エコー
"$v2 n"
;
???????}
???????エコー '
';
}
?>
7. 配列関数
key はキー値を取得します
$arr = array(
???????「張三」 => 「済南」、
???????'李思' => '煙台',
???????「王武」 => 威海、
???????「趙劉」 => 「北京」、
???????);
その間
($person = current($arr)) {
???????
場合
($person == '威海') {
?????????????エコーキー($arr)。'
';
???????}
???????next($arr);
}
?>
上記では「王五」が得られますが、Yantai が「」が空文字列の場合、ここで実行するとプログラムはループから抜け出し、空文字列は false に変換されます。
foreach 効果を実現するには for を使用します:
$arr = array(
???????'Baidu' => 'http://www.baidu.com',
???????「Google」=>「http://www.google.com.hk」、
???????'400番号' => 'http://www.my400800.cn',
???????'bing' => 'http://cn.bing.com',
???????);
(reset($arr);$key=key($arr);next($arr))
echo $key.'
';
?>
この問題も上記と同じです。あるキーの値が false として計算された場合、ループが抜けます。