生命之风的低语
Whispers in the Wind of Life.

从二维数组中提取特定键值的三种方法

秀秀 发布于 2024-6-18 14:29    24 次阅读

在 PHP 中,可以使用数组函数如 array_column 或者通过遍历数组来从一个二维数组中提取某个键的值,并组成一个一维数组。下面是几个实现方法:

使用 array_column

如果你的 PHP 版本支持 array_column(PHP 5.5.0 及以上),可以使用它来简化操作。

<?php
$array = [
    ['id' => 1, 'name' => 'Alice', 'age' => 25],
    ['id' => 2, 'name' => 'Bob', 'age' => 30],
    ['id' => 3, 'name' => 'Charlie', 'age' => 35],
];

$names = array_column($array, 'name');
print_r($names);
?>

输出:

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

使用 foreach 循环

如果不能使用 array_column,可以通过 foreach 循环来实现。

<?php
$array = [
    ['id' => 1, 'name' => 'Alice', 'age' => 25],
    ['id' => 2, 'name' => 'Bob', 'age' => 30],
    ['id' => 3, 'name' => 'Charlie', 'age' => 35],
];

$names = [];
foreach ($array as $item) {
    $names[] = $item['name'];
}
print_r($names);
?>

输出与上面相同:

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

使用 array_map

array_map 也是一个有效的方法。

<?php
$array = [
    ['id' => 1, 'name' => 'Alice', 'age' => 25],
    ['id' => 2, 'name' => 'Bob', 'age' => 30],
    ['id' => 3, 'name' => 'Charlie', 'age' => 35],
];

$names = array_map(function($item) {
    return $item['name'];
}, $array);
print_r($names);
?>

输出仍然相同:

Array
(
    [0] => Alice
    [1] => Bob
    [2] => Charlie
)

总结

  • array_column 是最简洁的方法,适用于 PHP 5.5.0 及以上版本。
  • foreach 循环 适用于任何 PHP 版本,且直观易懂。
  • array_map 是一种函数式编程方法,适合喜欢用回调函数的场景。

根据具体情况和代码风格选择合适的方法来提取数组中的键值。