待整理(文章)

[PHP基础学习笔记] 数组函数:使用array_filter()过滤数组

字号+ 作者:hanyufeng 来源: 2018-01-10 21:19:00 我要评论( ) 阅读:

数组过滤函数 array_filter...

array_filter 返回一个过滤后的新数组,过滤方法在回调函数中处理。


源码:

<?php
header('content-type:text/html; charset=utf-8');
//定义数组
$array = [
    ['ISBN'=>'9787302466529', 'title'=>'ThinkPHP实战', 'pub'=>'清华大学出版社', 'price'=>49],
    ['ISBN'=>'9787121122910', 'title'=>'ThinkPHP从入门到精通', 'pub'=>'电子工业出版社', 'price'=>59],
    ['ISBN'=>'9787111569756', 'title'=>'ThinkPHP实例教程', 'pub'=>'机械工业出版社', 'price'=>58]
];
echo '<pre>';
echo '原数组:<br>';
print_r($array);//原样输出键、值(key、value)
//使用回调函数处理
echo '使用回调函数处理:<br>';
echo '1:按完整书名过滤<br>';
$result = array_filter($array, function (&$value) {//加&传递参数引用,可以修改,不加&仅传递参数值,修改无效
    if ($value['title'] == 'ThinkPHP实战') {
        return true;  //返回true,放回到结果中
    }
    return false; //返回false,这个值就不会出现在结果中
});
print_r($result);

echo '2:按书名中的某个字过滤<br>';
$result = array_filter($array, function ($value) {//加&传递参数引用,可以修改,不加&仅传递参数值,修改无效
    if ( strstr($value['title'] , '实') ) { //
        return $value;  //直接返回原参数,作用与return true是一样的
    }
    return false; //返回false,这个值就不会出现在结果中
});
print_r($result);

echo '3:按书价过滤<br>';
$result = array_filter($array, function ($value) {
    if ( $value['price']>50 ) {
        return $value;
    }
    return false;
});
print_r($result);


运行效果:

原数组:
Array
(
    [0] => Array
        (
            [ISBN] => 9787302466529
            [title] => ThinkPHP实战
            [pub] => 清华大学出版社
            [price] => 49
        )

    [1] => Array
        (
            [ISBN] => 9787121122910
            [title] => ThinkPHP从入门到精通
            [pub] => 电子工业出版社
            [price] => 59
        )

    [2] => Array
        (
            [ISBN] => 9787111569756
            [title] => ThinkPHP实例教程
            [pub] => 机械工业出版社
            [price] => 58
        )

)
使用回调函数处理:
1:按完整书名过滤
Array
(
    [0] => Array
        (
            [ISBN] => 9787302466529
            [title] => ThinkPHP实战
            [pub] => 清华大学出版社
            [price] => 49
        )

)
2:按书名中的某个字符过滤
Array
(
    [0] => Array
        (
            [ISBN] => 9787302466529
            [title] => ThinkPHP实战
            [pub] => 清华大学出版社
            [price] => 49
        )

    [2] => Array
        (
            [ISBN] => 9787111569756
            [title] => ThinkPHP实例教程
            [pub] => 机械工业出版社
            [price] => 58
        )

)
3:按书价过滤
Array
(
    [1] => Array
        (
            [ISBN] => 9787121122910
            [title] => ThinkPHP从入门到精通
            [pub] => 电子工业出版社
            [price] => 59
        )

    [2] => Array
        (
            [ISBN] => 9787111569756
            [title] => ThinkPHP实例教程
            [pub] => 机械工业出版社
            [price] => 58
        )

)


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • [PHP基础学习笔记] 数组函数:数组输出

    [PHP基础学习笔记] 数组...

  • [PHP基础学习笔记] 数组函数:使用array_walk()遍历数组

    [PHP基础学习笔记] 数组...

  • [PHP基础学习笔记] 数组函数:使用array_map()遍历数组

    [PHP基础学习笔记] 数组...