- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章php array_walk array_map array_filter区别案例详解由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
php 开发经常遇到数组处理,会涉及到题目中这几个函数。这个函数功能类似,很多时候容易混淆.
array_walk — 使用用户自定义函数对数组中的每个元素做回调处理 1. 用户自定义的函数处理每一个元素 2. 直接修改原数组,不会创建新的数组 3. 可以传递额外的参数 Example #1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php
$fruits
=
array
(
"d"
=>
"lemon"
,
"a"
=>
"orange"
,
"b"
=>
"banana"
,
"c"
=>
"apple"
);
function
test_alter(&
$item1
,
$key
,
$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"
;
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
更多信息参考官方文档:http://php.net/manual/zh/function.array-walk.php 。
array_map — 为数组的每个元素应用回调函数 1. 回调函数,应用到每个数组里的每个元素 2. 可以处理多个数组,合并处理 3. 返回新建的数组 4. 传入 NULL 作为回调函数的名称,将创建多维数组 5. 传入两个及以上的数组时,它们元素数量将会相同。因为回调函数会并行地处理相互对应的元素。 如果几个数组的元素数量不一致:空元素会扩展短那个数组,直到长度和最长的数组一样.
Example #1:
1
2
3
4
5
6
7
8
9
10
|
<?php
function
cube(
$n
)
{
return
(
$n
*
$n
*
$n
);
}
$a
=
array
(1, 2, 3, 4, 5);
$b
=
array_map
(
"cube"
,
$a
);
print_r(
$b
);
?>
|
//运行结果 。
Array ( [0] => 1 [1] => 8 [2] => 27 [3] => 64 [4] => 125 。
) 。
Example #2:
1
2
3
4
5
6
7
|
<?php
$func
=
function
(
$value
) {
return
$value
* 2;
};
print_r(
array_map
(
$func
, range(1, 5)));
?>
|
//运行结果 。
Array ( [0] => 2 [1] => 4 [2] => 6 [3] => 8 [4] => 10 。
) 。
Example #3:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?php
function
show_Spanish(
$n
,
$m
)
{
return
(
"The number $n is called $m in Spanish"
);
}
function
map_Spanish(
$n
,
$m
)
{
return
(
array
(
$n
=>
$m
));
}
$a
=
array
(1, 2, 3, 4, 5);
$b
=
array
(
"uno"
,
"dos"
,
"tres"
,
"cuatro"
,
"cinco"
);
$c
=
array_map
(
"show_Spanish"
,
$a
,
$b
);
print_r(
$c
);
$d
=
array_map
(
"map_Spanish"
,
$a
,
$b
);
print_r(
$d
);
?>
|
//运行结果 。
// printout of $c Array ( [0] => The number 1 is called uno in Spanish [1] => The number 2 is called dos in Spanish [2] => The number 3 is called tres in Spanish [3] => The number 4 is called cuatro in Spanish [4] => The number 5 is called cinco in Spanish ) 。
// printout of $d Array ( [0] => Array ( [1] => uno ) 。
[1] => Array ( [2] => dos ) 。
[2] => Array ( [3] => tres ) 。
[3] => Array ( [4] => cuatro ) 。
[4] => Array ( [5] => cinco ) 。
更多信息参考官方文档:http://php.net/manual/zh/function.array-map.php 。
* array_filter — 用回调函数过滤数组中的单元* 1. 依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 true,则 array 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。 2. 如果没有提供 callback 函数, 将删除 array 中所有等值为 FALSE 的条目。 3. ARRAY_FILTER_USE_KEY - callback接受键名作为的唯一参数,ARRAY_FILTER_USE_BOTH - callback同时接受键名和键值 。
Example 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
<?php
function
odd(
$var
)
{
// returns whether the input integer is odd
return
(
$var
& 1);
}
function
even(
$var
)
{
// returns whether the input integer is even
return
(!(
$var
& 1));
}
$array1
=
array
(
"a"
=>1,
"b"
=>2,
"c"
=>3,
"d"
=>4,
"e"
=>5);
$array2
=
array
(6, 7, 8, 9, 10, 11, 12);
echo
"Odd :\n"
;
print_r(
array_filter
(
$array1
,
"odd"
));
echo
"Even:\n"
;
print_r(
array_filter
(
$array2
,
"even"
));
?>
|
//运行结果 Odd : Array ( [a] => 1 [c] => 3 [e] => 5 ) Even: Array ( [0] => 6 [2] => 8 [4] => 10 [6] => 12 。
Example #2
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
$entry
=
array
(
0 =>
'foo'
,
1 => false,
2 => -1,
3 => null,
4 =>
''
);
print_r(
array_filter
(
$entry
));
?>
|
//运行结果 。
Array 。
( 。
[0] => foo 。
[2] => -1 。
) 。
Example #3:
1
2
3
4
5
6
7
8
9
10
11
12
|
<?php
$arr
= [
'a'
=> 1,
'b'
=> 2,
'c'
=> 3,
'd'
=> 4];
var_dump(
array_filter
(
$arr
,
function
(
$k
) {
return
$k
==
'b'
;
}, ARRAY_FILTER_USE_KEY));
var_dump(
array_filter
(
$arr
,
function
(
$v
,
$k
) {
return
$k
==
'b'
||
$v
== 4;
}, ARRAY_FILTER_USE_BOTH));
?>
|
//运行结果 。
array(1) { 。
["b"]=> 。
int(2) 。
} 。
array(2) { 。
["b"]=> 。
int(2) 。
["d"]=> 。
int(4) 。
) 。
更多信息参考官方文档:http://php.net/manual/zh/function.array-filter.php 。
参考其他链接: http://www.zzvips.com/article/207228.html 。
到此这篇关于php array_walk array_map array_filter区别案例详解的文章就介绍到这了,更多相关php array_walk array_map array_filter区别内容请搜索我以前的文章或继续浏览下面的相关文章希望大家以后多多支持我! 。
原文链接:https://hufeng.blog.csdn.net/article/details/81149885 。
最后此篇关于php array_walk array_map array_filter区别案例详解的文章就讲到这里了,如果你想了解更多关于php array_walk array_map array_filter区别案例详解的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
我有这个简单的代码: $postCopy = $_POST['adminpanel']; array_walk($postCopy, function($v, $k) { return '';
我不明白 array_walk($arr, 'intval'); 做了什么,我在下面的代码片段中注释掉了: 无论我是否使用它似乎都不会改变输出。 最佳答案 它的目的是应该将 $arr 的每一项都转换
我只是想知道是否有人知道为什么我不能使用 require_once 作为 array_walk 的回调。我可以将它包含在一个匿名函数中并运行它,但它给出了一个无效的回调错误: $includes =
我得到了三个带有某种分层预定义术语的数组 array("fruits", "yellow", "pineapple"); array("fruits", "yellow", "lemon"); arr
我有一个看起来像这样的列表: list = [1,2,3,4] 我想给每个值加 12。在 PHP 中,您可以使用 array_walk 来处理数组中的每个项目。是否有比执行 for 循环类似的功能或更
有没有办法从匿名函数内部停止 array_walk? 这里有一些示例代码(有效)来说明我的意思,它检查数组是否只有数值。 $valid = true; array_walk($parent, func
有没有一种方法可以让这个数组使用我的匿名函数来设置值? $url = array('dog', 'cat', 'fish'); array_walk($url, function(&$value, &
php array_walk 对数组中的每个元素应用用户自定义函数 array_walk 使用用户自定义函数对数组中的每个元素做回调处理 基本语法 bool array_walk ( arra
代码如下: /*函数array_walk():单一数组回调函数---对数组中的每个成员应用用户函数 * 1、语法:bool array_walk ( array &array
以下code does not work如预期。 $fruits = array('apple', 'orange', 'banana', 'cherry'); array_walk($fruits,
如何使用 array_walk 更改元素的值? 例如,这是我的数组, $items = array( 0 => array( "id" => "1", "tit
我在类中使用带有闭包的 array_walk 时遇到了一个奇怪的问题。在我使用 php 版本 5.4.7 的开发环境中不会出现问题,但在我的部署环境 5.3.3 中会出现问题。 以下代码在我的生产机器
我正在尝试使用 array_walk() 函数来处理数组: 'b1', 'n2' => 'b2', 'n3' => 'b3'); array_walk($array, function(&$val,
我想知道如何将更多参数传递给我的 array_walk.. $addresses = array('www.google.com', 'www.yahoo.com', 'www.microsoft.c
我正在尝试用特定条件替换 array 值。 假设数组 $mark 有以下值 $mark = array(90,85); 只是正常的检查值,它正在回显正确的值 array_walk_recursive(
我正在处理不是我编写的代码。我看到开发人员想要修剪数组的所有元素并使用了 array_walk() 但是声明一个 _trim 函数有什么意义,它所做的只是使用标准 修剪()? array_walk($
在这种情况下,我们将在 array_walk() 中返回 false。事实上,他们在官方文档中说: Returns TRUE on success or FALSE on failure. 甚至,如果
我目前正在使用 array_map 将回调应用于数组元素。但我希望能够像 array_walk 那样将参数传递给回调函数。我想我可以只使用 array_walk,但我需要返回值是一个数组,就像您使用
我正在使用数组函数将竖线分隔的字符串转换为关联数组。 $piper = "|k=f|p=t|e=r|t=m|"; $piper = explode("|",$piper); $piper = arra
php 开发经常遇到数组处理,会涉及到题目中这几个函数。这个函数功能类似,很多时候容易混淆。 array_walk: array_walk — 使用用户自定义函数对数组中的每个元素做回调
我是一名优秀的程序员,十分优秀!