我有这个数组
Array
(
[0] => Array
(
[column_name] => product_id
)
[1] => Array
(
[column_name] => product_name
)
[2] => Array
(
[column_name] => product_slug
)
)
我需要一个只有列名的数组:
array('product_id', 'product_name', 'product_slug')
我创建了一个空数组,并像这样迭代主数组:
$data = array();
foreach ($result as $key => $res) {
$data[] = $res['column_name'];
}
有没有其他方法而不是迭代?
答案 0 :(得分:2)
如果您正在运行PHP > 5.5
,请尝试使用array_column
功能。像这样:
$data = array_column($result, 'column_name');
print_r($data);
如果你的PHP < 5.5
那么请使用它:
//Signature: array array_column ( array $input , mixed $column_key [, mixed $index_key ] )
if( !function_exists( 'array_column' ) ) {
function array_column( array $input, $column_key, $index_key = null ) {
$result = array();
foreach( $input as $k => $v )
$result[ $index_key ? $v[ $index_key ] : $k ] = $v[ $column_key ];
return $result;
}
}
答案 1 :(得分:0)
您可以在使用PHP&gt;中使用array_column(); 5.5。
$data = array();
$data = array_column($result, 'column_name');
print_r($first_names);
如果您的版本低于它,请添加以下代码:
<?php
if (! function_exists('array_column')) {
function array_column(array $input, $columnKey, $indexKey = null) {
$array = array();
foreach ($input as $value) {
if ( ! isset($value[$columnKey])) {
trigger_error("Key \"$columnKey\" does not exist in array");
return false;
}
if (is_null($indexKey)) {
$array[] = $value[$columnKey];
}
else {
if ( ! isset($value[$indexKey])) {
trigger_error("Key \"$indexKey\" does not exist in array");
return false;
}
if ( ! is_scalar($value[$indexKey])) {
trigger_error("Key \"$indexKey\" does not contain scalar value");
return false;
}
$array[$value[$indexKey]] = $value[$columnKey];
}
}
return $array;
}
}