array

xiaoxiao2021-02-28  184

bool  array_walk (  array &$array ,  callable $callback [,  mixed $userdata = NULL ] )

将用户自定义函数 funcname 应用到 array 数组中的每个单元。 array_walk() 不会受到 array 内部数组指针的影响。array_walk() 会遍历整个数组而不管指针的位置。

array_walk($array, callback, userdata); $array 输入的数组, callback($array的参数, 键名,$prefix)  $userdata 将被作为第三个参数传递给 callback prefix 测试环境 7.0.1 <?php $fruits = array("d" => "lemon", "a" => "orange", "b" => "banana", "c" => "apple"); function test_alter(&$item1, $key, $prefix) //注意这里第一个是取地址符,$prefix 表示为前缀 { $item1 = "$prefix: $item1"; } function test_print($item2, $key) { echo "$key. $item2<br />\n"; } echo "Before ...:\n"; array_walk($fruits, 'test_print'); array_walk($fruits, 'test_alter', 'fruit'); echo "... and after:\n"; var_dump($fruits); array_walk($fruits, 'test_print'); Before ...: d. lemon a. orange b. banana c. apple ... and after: d. fruit: lemon a. fruit: orange b. fruit: banana c. fruit: apple $fruits = array("1" => "lemon", "2" => "orange", "3" => "banana", "4" => "apple"); function test_print($item2, &$key) { ++$key; echo "$key. $item2<br />\n"; } array_walk($fruits, 'test_print'); var_dump($fruits);exit; array(4) { [1]=> string(5) "lemon" [2]=> string(6) "orange" [3]=> string(6) "banana" [4]=> string(5) "apple" } key值没有变化,说明,array_walk function中第二个方法中如果使用的key取地址符,key的值依然不变 Waring: If the class is static: array_walk($array, array('self', 'walkFunction')); or array_walk($array, array('className', 'walkFunction')); Otherwise: array_walk($array, array($this, 'walkFunction')); array_walk 与匿名函数结合使用 function zip(&$data, $glue=': ') { if(!is_array($data)) { throw new InvalidArgumentException('First parameter must be an array'); } array_walk($data, function(&$value, $key, $joinUsing) { $value = $key . $joinUsing . $value; }, $glue); } $myName = 'Matthew Purdon'; $myEmail = 'matthew@example.com'; $from = "$myName <$myEmail>"; $headers['From'] = $from; $headers['Reply-To'] = $from; $headers['Return-path'] = "<$myEmail>"; $headers['X-Mailer'] = "PHP" . phpversion() . ""; $headers['Content-Type'] = 'text/plain; charset="UTF-8"'; zip($headers); $headers = implode("\n", $headers); var_dump($headers); exit; $_POST['something'] = array_map(intval,$_POST['something']); array_walk($idscreate_function('&$val''$val = trim($val);')); 
转载请注明原文地址: https://www.6miu.com/read-19905.html

最新回复(0)