array_map/array_filter/array_walk遍历数组的方式和foreach一样,谁要快一些啊?
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了array_map/array_filter/array_walk遍历数组的方式和foreach一样,谁要快一些啊?,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2238字,纯文字阅读大概需要4分钟。
内容图文
![array_map/array_filter/array_walk遍历数组的方式和foreach一样,谁要快一些啊?](/upload/InfoBanner/zyjiaocheng/151/667f4a3997194a4d8b9f059a0a2c7b80.jpg)
$arr = ['Client'=>'jQuery','Server'=>'PHP'];
array_walk($arr, function($v, $k) {
echo "键:$k 值:$v\n";
});
比如去除数组$arr元素的前后空白:
array_walk($arr, function(&$v) { $v = trim($v); });
foreach($arr as &$v) { $v = trim($v); }
array_filter: 用回调函数过滤数组中的单元,返回过滤后的数组
var_export(
array_filter([1, 2, 3], function($v) {
return $v > 1;
})
);
和
foreach([1, 2, 3] as $k => $v) {
if($v > 1) {
$tmp[$k] = $v;
}
}
var_export($tmp);
都
输出:
array (
1 => 2,
2 => 3,
)
PHP数组映射化简(MapReduce):
array_map/array_reduce
array_map: 将回调函数作用到给定数组的单元上
var_export(
array_map(function ($v) {
return $v * $v;
}, [1, 2, 3])
);
和
foreach([1, 2, 3] as $v) {
$tmp[] = $v * $v;
}
var_export($tmp);
都
输出:
array (
0 => 1,
1 => 4,
2 => 9,
)
array_reduce: 用回调函数迭代地将数组简化(reduce)为单一的值
//输出16,即10+1+2+3,其中10作为初始值.
echo array_reduce([1, 2, 3], function($result, $item) {
$result = $result + $item;
return $result;
}, 10);
用foreach表达:
$result = 10;
foreach([1, 2, 3] as $v) {
$result = $result + $v;
}
echo $result;
执行效果都一样,但是具体的用函数快还是用foreach快些啊
回复内容:
array_walk相当于foreach:
$arr = ['Client'=>'jQuery','Server'=>'PHP'];
array_walk($arr, function($v, $k) {
echo "键:$k 值:$v\n";
});
比如去除数组$arr元素的前后空白:
array_walk($arr, function(&$v) { $v = trim($v); });
foreach($arr as &$v) { $v = trim($v); }
array_filter: 用回调函数过滤数组中的单元,返回过滤后的数组
var_export(
array_filter([1, 2, 3], function($v) {
return $v > 1;
})
);
和
foreach([1, 2, 3] as $k => $v) {
if($v > 1) {
$tmp[$k] = $v;
}
}
var_export($tmp);
都
输出:
array (
1 => 2,
2 => 3,
)
PHP数组映射化简(MapReduce):
array_map/array_reduce
array_map: 将回调函数作用到给定数组的单元上
var_export(
array_map(function ($v) {
return $v * $v;
}, [1, 2, 3])
);
和
foreach([1, 2, 3] as $v) {
$tmp[] = $v * $v;
}
var_export($tmp);
都
输出:
array (
0 => 1,
1 => 4,
2 => 9,
)
array_reduce: 用回调函数迭代地将数组简化(reduce)为单一的值
//输出16,即10+1+2+3,其中10作为初始值.
echo array_reduce([1, 2, 3], function($result, $item) {
$result = $result + $item;
return $result;
}, 10);
用foreach表达:
$result = 10;
foreach([1, 2, 3] as $v) {
$result = $result + $v;
}
echo $result;
执行效果都一样,但是具体的用函数快还是用foreach快些啊
内容总结
以上是互联网集市为您收集整理的array_map/array_filter/array_walk遍历数组的方式和foreach一样,谁要快一些啊?全部内容,希望文章能够帮你解决array_map/array_filter/array_walk遍历数组的方式和foreach一样,谁要快一些啊?所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。