PHP循环组合数组和list的使用
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-13 11:02:43
PHP循环结合数组和list的使用
foreach的使用:
1.用法1


??$arr=array(
"张三",
"李四",
"王五",
"马六");

??
foreach($arr
as $value)

??echo $value.'
';

?>
2.用法2
$arr=array('chinese'=>130,'math'=>140,'english'=>135,'computer'=>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
as &$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.each/list
each用法,每次取出个4元素数组,其中0,key对应键;1,value对应值:


$arr = array(
"张三",
"李四",
"王五");

$bar = each($arr);

print_r($bar);//Array ( [1] => 张三 [value] => 张三 [0] => 0 [key] => 0 )

?>
list的用法:


$arr = array(
"张三",
"李四",
"王五");

list($a[0], $a[1], $a[2]) = $arr;

print_r($a);
//Array ( [2] => 王五 [1] => 李四 [0] => 张三 )
?>
list结合each使用:


$arr = array(
"张三"=>20,
"李四"=>29,
"王五"=>23);
while(list($key, $value) = each($arr))

echo
"$key=>$value".'
';

?>
注意while(list($key, $value) = each($arr))中each得到的4元素数组中有2个数字索引分别赋给list中2个变量。
所以


$arr = array(
"张三",'b'=>
"李四",
"王五");

list($a[0], $a[1]) = $arr;

print_r($a);
//Array ( [1] => 王五 [0] => 张三 ) 
?>
6.多维数组


$a = array();

$a['山东'][0] =
"济南";

$a['山东'][1] =
"威海";

$a['黑龙江'][0] =
"哈尔滨";

$a['黑龙江'][1] =
"齐齐哈尔";
foreach ($a
as $key1=>$v1) {

??echo
"$key1".'
';

????????
foreach ($v1
as $v2) {

????????????????echo
"$v2 n";

????????}

????????echo '
';

}

?>
7.数组函数
key取键值


$arr = array(

????????'张三' => '济南',

????????'李四' => '烟台',

????????'王五' => '威海',

????????'赵六' => '北京',

????????);
while ($person = current($arr)) {

????????
if ($person == '威海') {

????????????????echo key($arr).'
';

????????}

????????next($arr);

}

?>
上面会得到 '王五',但是如果烟台为 ""空串,则程序执行到这里会跳出循环,空串转成false。
用for实现foreach效果:


$arr = array(

????????'百度' => 'http://www.baidu.com',

????????'谷歌' => 'http://www.google.com.hk',

????????'400电话' => 'http://www.my400800.cn',

????????'bing' => 'http://cn.bing.com',

????????);
for(reset($arr);$key=key($arr);next($arr))

echo $key.'
';

?>
这个问题同上,如果某个键值计算为false也会跳出循环。
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
-
2025-02-26 03:58:14
-
2025-02-26 03:38:10
-
2025-02-26 03:17:10
-
2025-02-26 02:49:09
-
2025-02-26 01:08:13
-
2025-02-26 00:46:10
-
2025-02-25 23:42:08
-
2025-02-25 22:50:13
-
2025-02-25 21:54:11
-
2025-02-25 20:45:11
最新问题
-
2025-03-20 18:47:42
-
2025-03-20 18:47:05
-
2025-03-20 18:44:50
-
2025-03-20 18:44:11
-
2025-03-20 18:43:32