读书人

PHP循环组合数组和list的使用

发布时间: 2012-12-20 09:53:21 作者: rapoo

PHP循环结合数组和list的使用

foreach的使用:
1.用法1

PHP循环组合数组和list的使用<?php
PHP循环组合数组和list的使用??$arr=array("张三","李四","王五","马六");
PHP循环组合数组和list的使用??foreach($arr as $value)
PHP循环组合数组和list的使用??echo $value.'<br/>';
PHP循环组合数组和list的使用?>


2.用法2

<?php
$arr=array('chinese'=>130,'math'=>140,'english'=>135,'computer'=>130);
foreach($arr as $key=>$value)
echo $key.':'.$value.'<br/>';
?>


3.按拷贝还是引用
默认按拷贝,和函数很相似:

<?php
????$arr=array(1,2,3,4);
????foreach($arr as $value)
????$value*=2;//其实改变的是副本对原数组没有影响
????print_r($arr);//Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )
?>


但是可以改成引用方式,通过&符号:

PHP循环组合数组和list的使用<?php
PHP循环组合数组和list的使用????$arr=array(1,2,3,4);
PHP循环组合数组和list的使用????foreach($arr as &$value)
PHP循环组合数组和list的使用????$value*=2;
PHP循环组合数组和list的使用????print_r($arr);//Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 )
PHP循环组合数组和list的使用?>

4.for循环

PHP循环组合数组和list的使用<?php
PHP循环组合数组和list的使用$arr=array(1,2,3,4,5);
PHP循环组合数组和list的使用for($i=0;$i<count($arr);$i++)
PHP循环组合数组和list的使用echo $arr[$i].'<br/>';
PHP循环组合数组和list的使用?>


5.each/list

each用法,每次取出个4元素数组,其中0,key对应键;1,value对应值:

PHP循环组合数组和list的使用<?php
PHP循环组合数组和list的使用$arr = array("张三", "李四", "王五");
PHP循环组合数组和list的使用$bar = each($arr);
PHP循环组合数组和list的使用print_r($bar);//Array ( [1] => 张三 [value] => 张三 [0] => 0 [key] => 0 )
PHP循环组合数组和list的使用?>


list的用法:

PHP循环组合数组和list的使用<?php
PHP循环组合数组和list的使用$arr = array("张三", "李四", "王五");
PHP循环组合数组和list的使用list($a[0], $a[1], $a[2]) = $arr;
PHP循环组合数组和list的使用print_r($a);//Array ( [2] => 王五 [1] => 李四 [0] => 张三 )
PHP循环组合数组和list的使用?>


list结合each使用:

PHP循环组合数组和list的使用<?php
PHP循环组合数组和list的使用$arr = array("张三"=>20, "李四"=>29, "王五"=>23);
PHP循环组合数组和list的使用while(list($key, $value) = each($arr))
PHP循环组合数组和list的使用echo "$key=>$value".'<br/>';
PHP循环组合数组和list的使用?>


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

PHP循环组合数组和list的使用<?php
PHP循环组合数组和list的使用$arr = array("张三",'b'=>"李四", "王五");
PHP循环组合数组和list的使用list($a[0], $a[1]) = $arr;
PHP循环组合数组和list的使用print_r($a);//Array ( [1] => 王五 [0] => 张三 )
PHP循环组合数组和list的使用?>


6.多维数组

PHP循环组合数组和list的使用<?php
PHP循环组合数组和list的使用$a = array();
PHP循环组合数组和list的使用$a['山东'][0] = "济南";
PHP循环组合数组和list的使用$a['山东'][1] = "威海";
PHP循环组合数组和list的使用$a['黑龙江'][0] = "哈尔滨";
PHP循环组合数组和list的使用$a['黑龙江'][1] = "齐齐哈尔";
PHP循环组合数组和list的使用
foreach ($a as $key1=>$v1) {
PHP循环组合数组和list的使用??echo "<b>$key1</b>".'<br/>';
PHP循环组合数组和list的使用????????foreach ($v1 as $v2) {
PHP循环组合数组和list的使用????????????????echo "$v2 \n";
PHP循环组合数组和list的使用????????}
PHP循环组合数组和list的使用????????echo '<br/>';
PHP循环组合数组和list的使用}
PHP循环组合数组和list的使用?>


7.数组函数

key取键值

PHP循环组合数组和list的使用<?php
PHP循环组合数组和list的使用$arr = array(
PHP循环组合数组和list的使用????????'张三' => '济南',
PHP循环组合数组和list的使用????????'李四' => '烟台',
PHP循环组合数组和list的使用????????'王五' => '威海',
PHP循环组合数组和list的使用????????'赵六' => '北京',
PHP循环组合数组和list的使用????????);
PHP循环组合数组和list的使用
while ($person = current($arr)) {
PHP循环组合数组和list的使用????????if ($person == '威海') {
PHP循环组合数组和list的使用????????????????echo key($arr).'<br />';
PHP循环组合数组和list的使用????????}
PHP循环组合数组和list的使用????????next($arr);
PHP循环组合数组和list的使用}
PHP循环组合数组和list的使用?>

上面会得到 '王五',但是如果烟台为 ""空串,则程序执行到这里会跳出循环,空串转成false。

用for实现foreach效果:

PHP循环组合数组和list的使用<?php
PHP循环组合数组和list的使用$arr = array(
PHP循环组合数组和list的使用????????'百度' => 'http://www.baidu.com',
PHP循环组合数组和list的使用????????'谷歌' => 'http://www.google.com.hk',
PHP循环组合数组和list的使用????????'400电话' => 'http://www.my400800.cn',
PHP循环组合数组和list的使用????????'bing' => 'http://cn.bing.com',
PHP循环组合数组和list的使用????????);
PHP循环组合数组和list的使用
for(reset($arr);$key=key($arr);next($arr))
PHP循环组合数组和list的使用echo $key.'<br/>';
PHP循环组合数组和list的使用?>


这个问题同上,如果某个键值计算为false也会跳出循环。

读书人网 >PHP

热点推荐