您的位置:首页 > 编程语言 > PHP开发

PHP 数组 (前篇)-- 遍历

2014-11-24 18:46 120 查看
<?php
/**
* Created by PhpStorm.
* User: W.J.Chang
* Date: 2014/11/24
* Time: 16:28
*/

/*
* php 数组相当灵活
* 1, 索引数组:和其他语言一样,用数字下标进行索引,但是下标可以不连续
*    $demo = array('apple','orange','banana') <==> demo = array(0=>'apple',1=>'orange',2=>'banana');
* 2, 关联数组:key-value形式
* 3, 多维数组:数组的数组 $demo = array(array(),array());
*/

/*
* 数组遍历
* 1, for
*    这种方式不是首选
*    数组必须是下标连续的索引数组
*
* 2, foreach
*    foreach($arr as $item) { ... }
*    foreach($arr as $key=>$val) { ... }
*
* 3, while() list() each() 组合
*    each(): 需要一个数组作为参数,返回array(0,1,$key,$val),是一个游标操作,执行到最后会返回false
*    list(): a, list() = array() 需要将数组赋给list()
*            b, 数组中的元素个数要和list()函数中的参数个数相同
*            c, 数组中的每个元素会赋值给list()中的每个参数
*            d, list() 只能接受索引数组
*            e, 按索引的下标顺序遍历
*
*    数组内部指针控制函数
*
*    prev($arr)      : 上一个指针
*    next($arr)      : 下一个指针
*    reset($arr)     : 第一个
*    end($arr)       : 最后一个
*
*    current($arr)   : 当前key
*    key($arr)       : 当前value
*
*/

// for
echo "\n for ... \n";
$demo = array('apple','orange','banana');
for($i=0;$i<count($demo);$i++) {
echo $demo[$i]." ";
}

// for
echo "\n for ... \n";
$demo1 = array(0=>'apple',1=>'orange',2=>'banana');
for($i=0;$i<count($demo1);$i++) {
echo $demo1[$i]." ";
}

// foreach
echo "\n foreach ... \n";
foreach($demo as $item) {
echo $item." ";
}

// foreach
echo "\n foreach ... \n";
foreach($demo as $key => $val) {
echo ' '.$key.'=>'.$val.' ';
}

echo "\n".'----------------------------------------';

$user = array('id'=>1,'name'=>'jack','age'=>10,'sex'=>'male');

// while
echo "\n while ... \n";
while($arr=each($user)) {
// "$arr[0]-->$arr[1]";
echo  $arr['key']."-->".$arr['value']."  ";
}

echo "\n-------------------------------------------";
while(list($key,$value)=each($user)) {
echo ''.$key.'----->'.$value."  ";
}
echo "\n-------------------------------------------\n";
reset($user);
while(list($key,$value)=each($user)) {
echo ''.$key.'----->'.$value."  ";
}
echo "\n-------------------------------------------\n";
while(list($key,$value)=each($user)) {
echo ''.$key.'----->'.$value."  ";
}

reset($user);
next($user);
next($user);
echo "\n-------------------------------------------\n";
while(list($key,$value)=each($user)) {
echo ''.$key.'----->'.$value."  ";
}

reset($user);
echo "\n";
echo current($user).'---------->'.key($user)."\n";
end($user);
echo current($user).'---------->'.key($user)."\n";
prev($user);
echo current($user).'---------->'.key($user)."\n";

/*
* result
*
for ...
apple orange banana
for ...
apple orange banana
foreach ...
apple orange banana
foreach ...
0=>apple  1=>orange  2=>banana
----------------------------------------
while ...
id-->1  name-->jack  age-->10  sex-->male
-------------------------------------------
-------------------------------------------
id----->1  name----->jack  age----->10  sex----->male
-------------------------------------------

-------------------------------------------
age----->10  sex----->male
1---------->id
male---------->sex
10---------->age
*/
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: