PHP获取二维数组中某一列的值集合

以下是关于PHP获取二维数组中某一列的值集合的完整攻略。

以下是关于PHP获取二维数组中某一列的值集合的完整攻略。

问题描述

在PHP开发中,经常需要对二维数组中的某一列进行操作。例如查询某一列的值域、筛选符合某一列值的行等等。

解决方案

我们可以使用PHP提供的array_column函数来获取二维数组中某一列的值集合。

array_column函数

array_column函数可以取出二维数组中的某一列数据,并返回一个新数组,新数组的值即为指定列的值集合。函数原型如下:

array_column(array $array, mixed $column_key [, mixed $index_key = null]):

函数参数说明:

  • $array - 依据键名索引的数组,从该数组中取出某一列的值集合
  • $column_key - 需要返回值的列,可以是字符串或数字
  • $index_key - 返回数组中用作键的列,可以是字符串或数字。如果省略,则使用数字索引

以下给出示例:

// 二维数组
$arr = array(
    array('id'=>1, 'name'=>'Tom', 'age'=>18),
    array('id'=>2, 'name'=>'Jerry', 'age'=>19),
    array('id'=>3, 'name'=>'Alice', 'age'=>20),
);

// 获取id的值集合
$id_arr = array_column($arr, 'id');
print_r($id_arr);

// 获取name的值集合,使用age作为键
$name_arr = array_column($arr, 'name', 'age');
print_r($name_arr);

以上代码的输出结果分别为:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
)
Array
(
    [18] => Tom
    [19] => Jerry
    [20] => Alice
)

输出结果说明:

  • 示例1中取出了$arr数组中,'id'这一列的值集合,输出结果为一个索引数组
  • 示例2中取出了$arr数组中,'name'这一列的值集合,并指定'age'这一列作为新数组的键,输出结果为一个关联数组

案例1:获取MySQL表中某一列的值集合

以下给出从MySQL表中获取某一列的值集合的代码示例:

// 连接MySQL数据库
$pdo = new PDO('mysql:host=localhost;dbname=test', 'username', 'password');

// 查询student表中id列的值集合
$sql = "SELECT id FROM student";
$stmt = $pdo->prepare($sql);
$stmt->execute();
$id_arr = $stmt->fetchAll(PDO::FETCH_COLUMN, 0); // 使用FETCH_COLUMN获取第0列的值集合

以上代码中,使用PDO连接到MySQL数据库,查询student表中id列的值集合,并使用PDO::FETCH_COLUMN获取第0列的值集合。

案例2:筛选符合某一列值的行

以下给出根据数组中某一列的值筛选出符合条件的行的代码示例:

// 二维数组
$arr = array(
    array('id'=>1, 'name'=>'Tom', 'age'=>18),
    array('id'=>2, 'name'=>'Jerry', 'age'=>19),
    array('id'=>3, 'name'=>'Alice', 'age'=>20),
);

// 筛选年龄大于18岁的行
$age = 18;
$new_arr = array_filter($arr, function($v) use ($age) {
    return $v['age'] > $age;
});
print_r($new_arr);

以上代码中,使用array_filter函数对$arr数组中的元素进行筛选,得到符合条件的新数组。

总结

以上就是获取PHP二维数组中某一列的值集合的完整攻略。通过使用array_column函数,我们可以轻松地获取到所需列的值集合。同时,我们还给出了从MySQL表中获取某一列的值集合、筛选符合条件的行等使用示例。

本文标题为:PHP获取二维数组中某一列的值集合

基础教程推荐