美文网首页
array_columns()处理数组结果集

array_columns()处理数组结果集

作者: 文沐2023 | 来源:发表于2018-03-12 13:54 被阅读0次

经常会遇到这样的场景。从数据库查询多条结果,返回的是一个索引下标的二维数组结果集;但是根据应用场景,需要把这个二维数组转换为id作为关联索引的数组或的一维数组;

array_column($array,$column_value,$index_key);
$array 需要转换的二维数组;
$column_value 需要返回的某列的键(关联索引/数字索引);值为NULL是返回原数组;
$index_key 可选参数,指定某列作为新数组的键(关联索引/数字索引)

比如:返回二维数组name列:

 <?php
          $array = [
                [
                        'id'=> 10000,
                        'name'=> 'Aloo',
                        'ctime'=> 1520832703
                ],
                [
                        'id'=> 10002,
                        'name'=> 'oppa',
                        'ctime'=> 1520832712
                ],
        ];

        var_dump(array_column($array,‘name’));
  ?>

输出结果:

    array (size=2)
              0 => string 'Aloo' (length=4)
              1 => string 'oppa' (length=4)

比如:二维数组使用指定索引key作为下标:

 <?php
          $array = [
                [
                        'id'=> 10000,
                        'name'=> 'Aloo',
                        'ctime'=> 1520832703
                ],
                [
                        'id'=> 10002,
                        'name'=> 'oppa',
                        'ctime'=> 1520832712
                ],
        ];

        var_dump(array_column($array,null,'id'));
  ?>

输出结果:

array (size=2)
      10000 => 
              array (size=3)
                    'id' => int 10000
                    'name' => string 'Aloo' (length=4)
                    'ctime' => int 1520832703
      10002 => 
              array (size=3)
                    'id' => int 10002
                    'name' => string 'oppa' (length=4)
                    'ctime' => int 1520832712

比如:id作为键,name作为值,返回新的一维数组:

 <?php
          $array = [
                [
                        'id'=> 10000,
                        'name'=> 'Aloo',
                        'ctime'=> 1520832703
                ],
                [
                        'id'=> 10002,
                        'name'=> 'oppa',
                        'ctime'=> 1520832712
                ],
        ];

        var_dump(array_column($array,‘name’,'id'));
  ?>

输出结果:

array (size=2)
      10000 => string 'Aloo' (length=4)
      10002 => string 'oppa' (length=4)

相关文章

网友评论

      本文标题:array_columns()处理数组结果集

      本文链接:https://www.haomeiwen.com/subject/emenfftx.html