array_column 用法

Alexer 发布于 阅读:20 速查

array_column 干的事很单一:从一个二维数组里,把某一列整列抽出来,拼成一个一维数组。

签名是 array_column(数组, 要取的列, 拿来做键的列),第三个参数可以不写。

<?php
$users = [
    ['id' => 1, 'name' => '小明', 'age' => 18],
    ['id' => 2, 'name' => '小红', 'age' => 20],
];

// 只取 name 这一列,结果键从 0 开始
$names = array_column($users, 'name');
// ['小明', '小红']

// 用 id 当键,取 name,做成映射表
$map = array_column($users, 'name', 'id');
// [1 => '小明', 2 => '小红']

// 取整条记录以外的情况都行,比如取 age
$ages = array_column($users, 'age', 'name');
// ['小明' => 18, '小红' => 20]

几个要点:

要取的列在某个元素里不存在,那个位置就是 null,不会报错。拿来做键的列缺失时,那条记录会被直接跳过,不进结果。数组元素是对象时,按属性名取也行,写法和取数组键一样。

最常见的用法是从数据库查出来的二维结果里,捞一列 ID 去做 IN 查询,或者用主键重建一个按 ID 索引的数组,省掉手写 foreach。

PHP 代码基础 函数用法