如果您无法升级 php 版本,您可以简单地使用以下语法。在这种情况下,请使用if (!function_exists('array_column')) 以防止版本升级时可能发生的重新声明功能。
来自 php.net 的说明
array_column() 从数组的单个列返回值,由 column_key 标识。或者,您可以提供一个 index_key 来根据输入数组中 index_key 列中的值对返回数组中的值进行索引。
/* Function array_column equivalent to php's array_column */
if (!function_exists('array_column'))
{
function array_column(array $array, $column_key, $index_key = NULL)
{
if (isset($array))
{
$return = array();
foreach ($array as $a)
{
if ($index_key)
{
if (!isset($a[$index_key]))
{
return array();
}
else
{
$return[$a[$index_key]] = $a[$column_key];
}
}
else
{
$return[] = $a[$column_key];
}
}
return $return;
}
return array();
}
}
以下是取自PHP.NET的一些示例
<?php
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
),
array(
'id' => 5342,
'first_name' => 'Jane',
'last_name' => 'Jones',
),
array(
'id' => 5623,
'first_name' => 'Peter',
'last_name' => 'Doe',
)
);
$first_names = array_column($records, 'first_name');
print_r($first_names);
?>
它将给出以下输出:
Array
(
[0] => John
[1] => Sally
[2] => Jane
[3] => Peter
)
从记录集中获取姓氏列,由“id”列索引
<?php
$last_names = array_column($records, 'last_name', 'id');
print_r($last_names);
?>
它会给你如下输出:
Array
(
[2135] => Doe
[3245] => Smith
[5342] => Jones
[5623] => Doe
)