php学习笔记--数组

一 访问数组
1、如果使用的是索引方式的数组可以使用for循环来实现如下:
for ( $i = 0; $i < count($arr); $i++ ){
   echo $arr[i] . '<br/>';
}
 
2、如果使用的是非索引方式的选择就多了,比如
(1)foreach用法
foreach ( $arr as $value ){
  echo $value . '<br/>';
}
 
(2)另一种foreach用法
foreach ( $arr as $key => $value ){
  echo $key . ' - ' . $value . '<br/>';
}
 
(3)使用each结构
while($item = each($arr)){
  echo $item['key'] . ' - ' . $item['value'] . '<br/>';
}

(4)一种比较高级和常见的方式list
while ( list( $item, $value ) = each($arr)){
  echo "$item - $value<br/>";
}  

http://www.cnblogs.com/tonysuen/articles/1615670.html

二 数组常用函数

1 range 建立一个包含指定范围单元的数组
原型:array range ( mixed $low , mixed $high [, number $step ] )
range() 返回数组中从 low 到 high 的单元,包括它们本身。如果 low > high,则序列将从 high 到 low。
$numbers = range(1, 100); //range 是将1到100 列成一个数组

2 shuffle 将数组打乱
原型:bool shuffle ( array &$array )
本函数打乱(随机排列单元的顺序)一个数组。 
本函数为 array 中的单元赋予新的键名。这将删除原有的键名而不仅是重新排序。重新以数字索引数组。
$numbers=array(100,99,98,"aa"=>97,96,"zj"=>95);
shuffle($numbers); //shuffle 将数组顺序随即打乱
var_dump($numbers);
得到类似结果:
array
  0 => int 99
  1 => int 95
  2 => int 96
  3 => int 97
  4 => int 98
  5 => int 100

3 array_rand 从数组中随机取出一个或多个单元 
原型:mixed array_rand ( array $input [, int $num_req ] )
如果只有$input参数 或者 $num_req=1,返回一个返回一个随机单元的键名
否则 返回包含$num_req个包含随机键名的数组
注意:返回值有两种  标量类型 和 array。

 

4 array_slice — 从数组中取出一段
原型:array array_slice ( array $array , int $offset [, int $length [, bool $preserve_keys ]] )
返回根据 offset 和 length 参数所指定的 array 数组中的一段序列。
如果 offset 非负,则序列将从 array 中的此偏移量开始。如果 offset 为负,则序列将从 array 中距离末端这么远的地方开始。 

如果给出了 length 并且为正,则序列中将具有这么多的单元。如果给出了 length 并且为负,则序列将终止在距离数组末端这么远的地方。如果省略,则序列将从 offset 开始一直到 array 的末端。 
注意:1  如果$array不是纯数字索引数组,则不重置数组的键。
        2  array_slice() 默认将重置数组的键。自 PHP 5.0.2 起,可以通过将 preserve_keys 设为 TRUE ,索引将不会重置。 
 
$no = 6;
$result = array_slice($numbers, 0, $no); //array_slice 取该数组中的某一段