我有一个来自数据库的数组($ query):
Array
(
[0] => Array
(
[category] => Mercedes
)
[1] => Array
(
[category] => BMW
)
[2] => Array
(
[category] => Bentley
)
)
我想把它变成一个数组$ category:
Array
(
[0] => Mercedes
[1] => BMW
[2] => Bentley
)
我尝试使用array_merge(),但结果看起来不像我想要的那样。
答案 0 :(得分:2)
你必须迭代你的数组,选择每个'类别'值。
foreach ($query as $array) {
$newArray[] = $array['category'];
}
$newArray
将根据您的需要包含值。
答案 1 :(得分:1)
你可以试试这样的东西,它会以递归的方式展平任意深度的多维数组(来自here):
function array_flatten($array) {
if (!is_array($array)) {
return FALSE;
}
$result = array();
foreach ($array as $key => $value) {
if (is_array($value)) {
$result = array_merge($result, array_flatten($value));
} else {
$result[$key] = $value;
}
}
return $result;
}
答案 2 :(得分:1)
您希望遍历从数据库返回的数组中的每个数组:
foreach($query as $row)
{
$category[] = $row['category'];
}
答案 3 :(得分:0)
最明显的解决方案:
$res = array();
foreach ($tab as $val) {
$res[] = $val['category'];
}
答案 4 :(得分:0)
$new_array = array_map(function($v){return $v['category'];}, $old_array);
答案 5 :(得分:0)
内联解决方案我刚刚提出:
$new = end(call_user_func_array('array_merge_recursive', $arr));
注意,如果除了category
之外还有一个以上的元素,这将无法正常工作。如果是这样,你可以采用这样的解决方案:
$new = call_user_func_array('array_merge_recursive', $arr);
$new = $new['category'];
但这并不是那么酷,而且通常采用foreach
方式更好。
答案 6 :(得分:0)
问题解决!!。
$query = array
(
array
(
'category' => 'Mercedes'
),
array
(
'category' => 'BMW'
),
array
(
'category' => 'Bentley'
)
);
$category = array();
foreach( $query as $queryArray ){
foreach( $queryArray as $key => $value ){
$category[] = $value;
}
}
//echo '<br />';
print_r( $category );