PHP4函数手册 array里的算是看完咯, 明天在看看最新的手册。。。。
array_values($arr) array 
返回数组所有元素 
<?php 
$arr = array("a", "b", "c"); 
$arr = array_flip($arr);        //反转数组的下标和值现在的$arr = array(0, 1, 2); 
$arr = array_values($arr);      //返回数组$arr中的所有元素 
print_r($arr);                  //结果: array(0, 1, 2); 
?> 
array_walk($arr, $func, [$data]) bool 
使用用户自定义的函数遍历所有的元素,返回true/false 
注意:此函数只处理数组的第一维 
$func是一个函数名 
默认会传入两个参数 第一个 $arr的值, 第二个$arr的下标, 一对一对的传哦 
<?php 
$arr = array('a', 'b', 'c'); 
array_walk($arr, 'test');       //这里第二个参数test就是函数名 
function test(&$val, $key)      //这里第一个参数加上引用, 那么修改$val就等于修改$arr中的元素 
{ 
    $val = 'x_' . $val;         //这里给他加一个前缀 
} 
print_r($arr);                  //输出结果 array('x_a', 'x_b', 'x_c'); 
//这里如果把$arr改成 $arr = array('a', 'b', 'c', array(1, 2, 3));  打印结果将是 array('x_a', 'x_b', 'x_c', 'x_Array'); 
?> 
现在传入第三那个参数$data, 如果有传入第三个参数,那么第三个参数将传给第二个参数定义的函数当中的第三个参数 
<?php 
array_walk($arr, 'test', 'x_'); 
function test(&$val, $key, $prefix) 
{ 
    $val = $prefix . $val;          //其实这里的$prefix就是上面的x_ 
} 
print_r($arr);                      //输出结果和上面一样 array('x_a', 'x_b', 'x_c'); 
?>  
arsort($arr) bool 
对数组$arr进行倒序排列并保留下标和值的关系,如果排序成功返回true 否则返回 false 
此函数只处理数组的第一维 
<?php 
$arr = array('a' => 'a', 'b' => 'b', 'c' => 'c'); 
arsort($arr); 
print_r($arr);      //打印结果: array('c' => 'c', 'b' => 'b', 'a' => 'a'); 如果有数字那么数字会在字符前面 
?>  
asort($arr) bool 
对数组$arr进行正序排列也就是a-z这样排列, 返回值和上面一样 
此函数也保留下标和值的关系 
<?php 
$arr = array('a' => 'a', 'b' => 'b', 'c' => 'c'); 
asort($arr); 
print_r($arr);      //结果没变, 就是原那数组 
$arr = array('c' => 'c', 'b' => 'b', 'a' => 'a'); 
asort($arr); 
print_r($arr);      //结果:array('a' => 'a', 'b' => 'b', 'c' => 'c'); 
?>  
compact($varname, ...., $varname) array 
接受n个$varname并将$varname当做下标$varname的值当做值创建一个数组$varname可以为数组 
解释不清楚, 看例子 
<?php 
$a   = "变量a"; 
$b   = "变量b"; 
$arr = compact('a', 'b');   //这里传入 a b 分别为上面定义的变量名称 
print_r($arr);              //打印结果为 array('a' => '变量a', 'b' => '变量b'); 
//还可以把变量名称当做数组传入 
$vars = array('a', 'b'); 
$arr  = compact($vars); 
print_r($arr);              //结果和上面一样, 其实这个函数就是做extract的相反操作 
?>  
extract($arr, $type, $prefix) int 
将数组$arr的下标当做变量名, 值当做变量的值 
$arr  目标数组 
$type 这个是遇过遇到相同下标使用什么方式处理, 值是PHP已经定义了的常量 
EXTR_OVERWRITE      如果相同, 那么就覆盖前面的那个变量, 默认就是这个 
EXTR_SKIP           如果相同, 不覆盖前面那个变量 
EXTR_PREFIX_SAME    如果相同, 那么使用第三个参数$prefix加到变量名前 
EXTR_PREFIX_ALL     把所有变量名称都加上$prefix当做前缀 
注意在$type为EXTR_PREFIX_SAME或EXTR_PREFIX_ALL时才需要传入参数$prefix, 不然传了也没用。。。 
例子 
<?php 
$arr = array('a' => '变量a', 'b' => '变量b'); 
extract($arr, EXTR_OVERWRITE);      //如果有相同,那么覆盖 
echo $a;    //输出结果将是 '变量a' 
echo $b;    //结果: '变量b' 
$arr = array('a' => '变量a', 'b' => '变量b', 'a' => '第二个变量a');  //这里有两个元素下标都为a  
count($arr) int 
统计数组中的元素的数目 
<?php
$arr = array('a', 'b'); 
echo count($arr);   //很明显结果为2 
?> 
current($arr) mixed 
返回数组中当前指针所指的元素,此函数别名 pos 
<?php 
$arr = array('a', 'b', 'c'); 
echo current($arr);         //结果为 'a' 
echo next($arr);            //指针向下一个移动,所以现在指针所指的是b 输出结果当然为 'b' 
echo current($arr);         //结果又是b 因为当前指针就在b这哦 
echo end($arr)              //指针移动到数组最后, 并返回结果, 所以结果为c 
echo prev($arr);            //指针向上一个移动, 结果b 
echo key($arr);             //返回指针所指元素的下标 因为上面指针到了b那么所有 结果为1 因为b的下标就是1 
echo reset($arr);           //重置指针都数组开头 结果a 
?> 
each($arr) array 
重数组$arr中返回一对 key/value也就是 下标/值 
<?php
$arr = array('a' => 1, 'b' => 2, 'c' => c); 
$res = each($arr); 
print_r($res);  //结果为 array('0' => 'a', 'key' => 'a', 1 => 1, 'value' => 1) 
//返回结果 0 和 key 都代表 下标   1 和 value 代表值 
//没使用一次each数组内部指针就会向下移动一次, 如果已经是数组末端, 将返回false 
$res = each($arr); 
print_r($res); //结果就会变成 array('0' => 'b', 'key' => 'b', 1 => 2, 'value' => 2) 
?>  
list($val, .. , [$val]) void 无返回值 
把数组中的值赋给一些变量$val 
<?php 
$arr = array('颜色', '字母A', '字母B'); 
list($color, $a, $b) = $arr;    //注意这里list的参数$val 位置是和数组中的位置对应, 重左到右 
echo $color; //结果 '颜色' 
echo $a;     //结果 '字母A' 
list($color, , $b)   = $arr;    //这样空一个 
echo $color; //结果 '颜色' 
echo $a;     //结果 一样都没有, 因为就没给a赋值哦, 哪里也空出来咯 
echo $b;     //结果 '字母B' 
//list each 一起用 
$arr = array('颜色', '字母A', '字母B'); 
while(list($key, $val) = each($arr)) { 
    echo '下标:' . $key; 
    echo '----值:'    . $val; 
    echo '<br>'; 
} 
//输出结果为 
//下标:0----值:颜色 
//下标:1----值:字母A 
//下标:2----值:字母B 
?>  
krsort($arr, [$type]) bool 
对数组$arr按照其下标进行倒序排列 
还有一个ksort();  这个是按下标进行升序排列 
$type 是排序方式 
<?php 
$arr = array('a' => 1, 'b' => 2, 'c' => 3); 
krsort($arr); 
print_r($arr);  //打印结果: array('c' => 3, 'b' => 2, 'a' => 1); 
?>  
range($go, $end, [$setup)   array 
这个有点不好解释 
<?php 
$arr = range(1, 10); 
print_r($arr);      //结果array(1, 2, 3, 4, .., 10); 
$arr = range(1, 10, 2); //这里指定第三个参数, 也就是步长 
print_r($arr);      //结果array(1, 3, 5, 7, 9); 
$arr = range('a', 'z'); 
print_r($arr);      //结果 array('a', 'b', 'c', ..., 'z'); 
?>  
sort($arr); 
将数组重a-z进行排序 
<?php 
$arr = array("lemon","orange","banana","apple"); 
sort($arr); 
print_r($arr);  //结果array('apple', 'banana', 'lemon', 'orange'); 
//还有个z-a进行排序的函数rsort 
?>  
shuffle($arr) bool 
将数组$arr进行乱排序, 也就是随机排序 
<?php 
$arr = range(1, 10); 
shuffle($arr); 
print_r($arr);  //结果是什么我也不知道, 因为是随机的 
?>  
usort($arr, $func) bool 
使用你自己定义的函数对$arr进行排序$func是自定义函数 
<?php 
$arr = array(1, 5, 8 ,2 ,0 ,3); 
usort($arr, 'test'); 
function test($a, $b) { 
    return $a == $b ? 0 : $a < $b ? 1 : -1; 
} 
print_r($arr);  //打印结果 Array ( [0] => 8 [1] => 5 [2] => 3 [3] => 2 [4] => 1 [5] => 0 ) 
// 这函数没弄懂哦。。 不知道参数$a , $b 代表的是什么? 看手册也没看懂, 如果这么简单的排序用ksort就行咯rsort 
// 这样的函数还有两个 uksort,和uasort都没弄懂, 郁闷。。。 
?> 
总结一下 
<?php 
array_values()      //返回数组中所有元素 
array_walk()        //使用自定义函数遍历数组都一个单元 
arsort();           //保留数组下标于值的关系进行倒序排列 
asort()             //保留数组下标于值的关系进行正序排列 
compact()           //将变量导入到数组中, 以变量名为下标, 值为值 
extract()           //将数组导入到变量, 下标为变量名, 值为值 
count()             //统计数组有多少个元素 
current()           //当前指针所指元素 
next()              //指针向下移动 
prev()              //指针向上移动   
end()               //指针移动到数组末尾 
reset()             //指针移动到数组开头 
key()               //返回当前指针所指元素的下标 
each()              //返回一对 key/value 
list()              //将数组导入到变量中 
krsort()            //按照下标进行倒序排列 
ksort()             //按照下标进行升序排列 
range()             //创建数组 
sort()              //按值重小到大排列 
rsort()             //按值重大到些排列   
shuffle()           //随机排列 
usort()             //......无语这个函数, Google去咯 
?>