关于 PHP 函数 array filter 的一些想法
array_filter
(PHP 4 >= 4.0.6, PHP 5, PHP 7) array_filter — 用回调函数过滤数组中的单元
说明
array array_filter ( array $array [, callable $callback [, int $flag = 0 ]] )
依次将 array 数组中的每个值传递到 callback 函数。如果 callback 函数返回 TRUE,则 input 数组的当前值会被包含在返回的结果数组中。数组的键名保留不变。
参数
- array
- 要循环的数组
- callback
- 使用的回调函数
- 如果没有提供 callback 函数, 将删除 input 中所有等值为 FALSE 的条目。更多信息见转换为布尔值。
- flag
- 决定 callback 接收的参数形式:
- ARRAY_FILTER_USE_KEY - callback 接受键名作为的唯一参数
- ARRAY_FILTER_USE_BOTH - callback 同时接受键名和键值
- 决定 callback 接收的参数形式:
返回值
返回过滤后的数组。
范例
<?php
$graphics_card = [
[
'brand'=>'华硕',
'model'=>'GTX980(Ti)',
'status'=>1,
],
[
'brand'=>'技嘉',
'model'=>'GTX970',
'status'=>0,
],
[
'brand'=>'微星',
'model'=>'GTX960',
'status'=>1,
],
[
'brand'=>'七彩虹',
'model'=>'GTX950',
'status'=>0,
],
];
$data = [
'int'=>0,
'null'=>null,
'bool'=>false,
'string'=>'hello',
'number'=>506510463,
'int-string'=>'0',
'null-string'=>'',
];
var_dump(array_filter($data));
var_dump(array_filter($data, function ($value) { if (!empty($value)) {
return $value;
}}));
var_dump(array_filter($data, 'strlen'));
var_dump(array_map('intval', $data));
var_dump(array_map(function ($value) { if (!empty($value)) {
return $value;
}}, $data));
var_dump(array_filter(array_map(function ($value) { if ($value['status']===1) {
return $value['brand'].$value['model'];
}}, $graphics_card)));
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
下一篇: Linux 安装 MySQL
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论