时间:2021-07-01 10:21:17 帮助过:36人阅读
Array
(
[0] => Array
(
[id] => 1
[name] => 你好,234
[cate] => 生活日记
)
[1] => Array
(
[id] => 2
[name] => 79798
[cate] => 摄影美图
)
[2] => Array
(
[id] => 3
[name] => 567567
[cate] => 生活日记
)
)
过滤里面cate = 摄影美图,其它全部保留,效果是
Array
(
[0] => Array
(
[id] => 1
[name] => 你好,234
[cate] => 生活日记
)
[1] => Array
(
[id] => 2
[name] => 79798
[cate] => 生活日记
)
)
如何用array_filter实现呢? 感觉array_filter不太好用。
数据库输出数组是
Array
(
[0] => Array
(
[id] => 1
[name] => 你好,234
[cate] => 生活日记
)
[1] => Array
(
[id] => 2
[name] => 79798
[cate] => 摄影美图
)
[2] => Array
(
[id] => 3
[name] => 567567
[cate] => 生活日记
)
)
过滤里面cate = 摄影美图,其它全部保留,效果是
Array
(
[0] => Array
(
[id] => 1
[name] => 你好,234
[cate] => 生活日记
)
[1] => Array
(
[id] => 2
[name] => 79798
[cate] => 生活日记
)
)
如何用array_filter实现呢? 感觉array_filter不太好用。
啥也不说,直接上代码,可惜php的闭包跟js一样又臭又长:
$data = [
[ 'id' => 1, 'name' => '你好,234', 'cate' => '生活日记'],
[ 'id' => 2, 'name' => '79798', 'cate' => '摄影美图'],
[ 'id' => 3, 'name' => '567567', 'cate' => '生活日记'],
];
$filtered = array_filter($data, function($item){
return $item['cate'] !== '摄影美图';
});
print_r($filtered);
注意看array_filter
的第二个参数,第二个参数是一个自定义函数。这个自定义函数是为了设置过滤条件。
1, 'cate'=>"生活日记"),
array('id'=>2, 'cate'=>"摄影美图"),
);
var_dump($arr);
function filter($rows){
if($rows['cate']==="摄影美图"){
return false;
}else{
return true;
}
}
$arr = array_filter($arr, 'filter');
var_dump($arr);
我觉得不用array_filter也能达到目的呀
array('id' => '1', 'name' => '你好,234', 'cate' => '生活日记'),
1 => array('id' => '2', 'name' => '79798', 'cate' => '摄影美图'),
2 => array('id' => '3', 'name' => '567567', 'cate' => '生活日记'),
);
$resultArr = array();
foreach ($oriArr as $key => $value)
{
if ($value['cate'] === '摄影美图')
{
continue;
}
else
{
$resultArr[] = $value;
}
}
print_r($resultArr);