PHP数组函数的使用

1.array_walk($arr, $func, [$data])

使用用户自定义的函数遍历所有的元素,返回true/false

$func是一个函数名

默认会传入两个参数 第一个 $arr的值, 第二个$arr的下标, 一对一对的传哦

 1 <?php
 2 $arr = array('a', 'b', 'c');
 3 array_walk($arr, 'test'); //这里第二个参数test就是函数名
 4 function test(&$val, $key) //这里第一个参数加上引用, 那么修改$val就等于修改$arr中的元素
 5 {
 6 $val = 'x_' . $val; //这里给他加一个前缀
 7 }
 8 print_r($arr); //输出结果 array('x_a', 'x_b', 'x_c');
 9 //这里如果把$arr改成 $arr = array('a', 'b', 'c', array(1, 2, 3)); 打印结果将是 array('x_a', 'x_b', 'x_c', 'x_Array');
10 ?>

如果有传入第三个参数,那么第三个参数将传给第二个参数定义的函数当中的第三个参数

1 <?php
2 array_walk($arr, 'test', 'x_');
3 function test(&$val, $key, $prefix){
4     $val = $prefix . $val; //其实这里的$prefix就是上面的x_
5 }
6 print_r($arr); //输出结果和上面一样 array('x_a', 'x_b', 'x_c');
7 ?>

2.遍历数组的方式:each和List

 1 //方法一:
 2 $sports = array(
 3     'football' => 'good',
 4     'swimming' => 'very well',
 5     'running' => 'not good');
 6 while ($elem = each($sports)) {
 7     echo $elem['key'].": ".$elem['value']."<br />";
 8 }
 9  
10 //方法二:
11 $sports = array(
12     'football' => 'good',
13     'swimming' => 'very well',
14     'running' => 'not good');
15 while (list($key, $value) = each($sports)) {
16     echo $key.": ".$value."<br />";
17 }
18 // football: good
19 // swimming: very well
20 // running: not good
21