• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    分享六个比较好用的php数组Array函数

    1. array_column 返回输入数组中某个单一列的值。
    2. array_filter 用回调函数过滤数组中的元素。
    3. array_map 将用户自定义函数作用到给定数组的每个值上,返回新的值。
    4. array_walk_recursive 对数组中的每个成员递归地应用用户函数。
    5. extract (从数组中将变量导入到当前的符号表),  compact (创建一个包含变量名和它们的值的数组)
    6. uasort 使用用户自定义的比较函数对数组中的键值进行排序。

    1. array_column 返回输入数组中某个单一列的值。

    类似功能有

    1.1 Yii2 中的 ArrayHelper::index($array, 'id');

    1.2 Yii2 中的 $query->select(['last_name', 'id'])->indexBy('id')->column();

    // 可能从数据库中返回数组
    $a = array(
     array(
      'id' => 5698,
      'first_name' => 'Peter',
      'last_name' => 'Griffin',
     ),
     array(
      'id' => 4767,
      'first_name' => 'Ben',
      'last_name' => 'Smith',
     ),
     array(
      'id' => 3809,
      'first_name' => 'Joe',
      'last_name' => 'Doe',
     )
    );
    $last_names = array_column($a, 'last_name', 'id');
    print_r($last_names);

    输出结果:

    Array
    (
        [5698] => Griffin
        [4767] => Smith
        [3809] => Doe
    )

    2. array_filter 用回调函数过滤数组中的元素。

    function test_odd($var)
    {
      return($var  1);
    }
    $a1=array("a","b",2,3,4);
    print_r(array_filter($a1,"test_odd"));

    输出:

    Array
    (
        [2] => 2
        [3] => 3
        [4] => 4
    )

    3. array_map 将用户自定义函数作用到给定数组的每个值上,返回新的值。

    此函数有点类似与 array_walk_recursive , 只是多写了一步递归

     function myfunction($v) {
       if (is_array($v)) {
         return array_map("myfunction", $v);
       }
      return($v * $v);
    } 
     $a = array(1, 2, 3, 4, 5, 6 => [2, 3]);
    print_r(array_map("myfunction", $a));

    输出:

    Array
    (
        [0] => 1
        [1] => 4
        [2] => 9
        [3] => 16
        [4] => 25
        [6] => Array
            (
                [0] => 4
                [1] => 9
            )

    )

     function myfunction($v1, $v2) {
      if ($v1 === $v2) {
         return "same";
       }
       return "different";
     } 
     $a1 = array("Horse", "Dog", "Cat");
     $a2 = array("Cow", "Dog", "Rat");
     print_r(array_map("myfunction", $a1, $a2));

    输出:

    Array
    (
        [0] => different
        [1] => same
        [2] => different

    4. array_walk_recursive 对数组中的每个成员递归地应用用户函数。

    此函数有点类似与 array_map, 只是省去了写递归

     function myfunction($value, $key, $p) {
       if ($value == 'xxx') {
         $value = $p;
       }
     }
     $a = array("a" => "red", "b" => "green", "c" => "blue", 'd' => ['x' => 'xxx', 'y' => 'yyy']);
     array_walk_recursive($a, "myfunction", 'green');
     print_r($a);

    输出:

    Array
    (
        [a] => red
        [b] => green
        [c] => blue
        [d] => Array
            (
                [x] => green
                [y] => yyy
            )

    )

    5. extract (从数组中将变量导入到当前的符号表),  compact (创建一个包含变量名和它们的值的数组)

     $a = "Original";
    $my_array = array("a" => "Cat","b" => "Dog", "c" => "Horse");
     extract($my_array);
     echo "\$a = $a; \$b = $b; \$c = $c";

    输出:

    $a = Cat; $b = Dog; $c = Horse

     $firstname = "Peter";
     $lastname = "Griffin";
     $age = "41";
    $result = compact("firstname", "lastname", "age");
     print_r($result);

    输出:

    Array
    (
        [firstname] => Peter
        [lastname] => Griffin
        [age] => 41
    )

    6. uasort 使用用户自定义的比较函数对数组中的键值进行排序(可以对二维数组排序)。

    $arr2 = [
      [
        'id' => 3,
        'age' => 33,
      ],
      [
        'id' => 2,
        'age' => 44,
      ],
      [
        'id' => 1,
        'age' => 22,
      ],
    ];
    //按age字段升序排序
    uasort($arr2, function($a, $b) {
      $field = 'age';
      if ($a[$field] == $b[$field]){
        return 0;
      }
      return ($a[$field]  $b[$field]) ? -1 : 1;
    });
    print_r($arr2);

    输出:

    Array
    (
        [2] => Array
            (
                [id] => 1
                [age] => 22
            )

        [0] => Array
            (
                [id] => 3
                [age] => 33
            )

        [1] => Array
            (
                [id] => 2
                [age] => 44
            )

    )

    总结

    以上所述是小编给大家介绍的六个比较好用的php数组Array函数,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

    您可能感兴趣的文章:
    • php使用array_chunk函数将一个数组分割成多个数组
    • PHP array_reduce()函数的应用解析
    • PHP 二维array转换json的实例讲解
    • php curl获取到json对象并转成数组array的方法
    • PHP中in_array的隐式转换的解决方法
    • PHP数组式访问接口ArrayAccess用法分析
    • PHP如何使用array_unshift()在数组开头插入元素
    上一篇:PHP快速排序算法实例分析
    下一篇:Laravel中简约却不简单的Macroable宏指令详解
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    分享六个比较好用的php数组Array函数 分享,六个,比,较好,用的,