Home >php教程 >php手册 >PHP数组函数array_walk()笔记

PHP数组函数array_walk()笔记

WBOY
WBOYOriginal
2016-06-13 09:23:56889browse

PHP数组函数array_walk()笔记

定义和用法

array_walk() 函数对数组中的每个元素应用回调函数。如果成功则返回 TRUE,否则返回 FALSE。

典型情况下 function 接受两个参数。array 参数的值作为第一个,键名作为第二个。如果提供了可选参数 userdata ,将被作为第三个参数传递给回调函数。

如果 function 函数需要的参数比给出的多,则每次 array_walk() 调用 function 时都会产生一个 E_WARNING 级的错误。这些警告可以通过在 array_walk() 调用前加上 PHP 的错误操作符 @ 来抑制,或者用 error_reporting()。

语法

array_walk(array,function,userdata...)

参数 描述
array 必需。规定数组。
function 必需。用户自定义函数的名称。
userdata 可选。用户输入的值,可作为回调函数的参数。

提示和注释

提示:您可以为函数设置一个或多个参数。

注释:如果回调函数需要直接作用于数组中的值,可以将回调函数的第一个参数指定为引用:&$value。(参见例子 3)

注释:将键名和 userdata 传递到 function 中是 PHP 4.0 新增加的。

例子 1

<?php
function myfunction($value, $key) {
	echo "The key $key has the value $value<br />";
}

$a = array("a" => "Cat", "b" => "Dog", "c" => "Horse");
array_walk($a, "myfunction");

输出:

The key a has the value Cat
The key b has the value Dog
The key c has the value Horse

例子 2

带有一个参数: 

<?php
function myfunction($value, $key, $p) {
	echo "$key $p $value<br />";
}

$a = array("a" => "Cat", "b" => "Dog", "c" => "Horse");
array_walk($a, "myfunction", "has the value");
?>

输出:

a has the value Cat
b has the value Dog
c has the value Horse

例子 3 

改变数组元素的值(请注意 &$value):(这种情况用的比较多!)

<?php
function myfunction(&$value, $key) {
	$value = "Bird";
}

$a = array("a" => "Cat", "b" => "Dog", "c" => "Horse");
array_walk($a, "myfunction");
print_r($a);

输出:

Array ( [a] => Bird [b] => Bird [c] => Bird )

您可能感兴趣的文章

  • PHP数组函数array_map()笔记
  • PHP 生成连续的数字(字母)数组函数range()分析,PHP抽奖程序函数
  • php在数组中查找某个值是否存在(in_array(),array_search(),array_key_exists())
  • php压入元素到数组头部(array_unshift的用法)
  • PHP去除数组中的空值元素(array_filter)
  • 如何删除PHP数组中的元素(unset,array_splice)?
  • php中数组的并集、交集和差集函数介绍
  • 用PHP函数memory_get_usage获取当前PHP内存消耗量以实现程序的性能优化
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn