以下是关于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获取二维数组中某一列的值集合 - Python技术站