2013-03-04 80 views
1

我有一個數組($查詢)做一個簡單的數組是這樣的:從數據庫中一系列複雜

Array 
(
[0] => Array 
    (
     [category] => Mercedes 
    ) 

[1] => Array 
    (
     [category] => BMW 
    ) 

[2] => Array 
    (
     [category] => Bentley 
    ) 

) 

我想使它成爲一個數組$類:

Array 
(
    [0] => Mercedes 
    [1] => BMW 
    [2] => Bentley 
) 

我用array_merge()嘗試了一些東西,但結果看起來不像我想要的。

回答

2

你必須迭代你的數組,挑選每個'category'值。根據您的需要

foreach ($query as $array) { 
    $newArray[] = $array['category']; 
} 

$newArray將包含的值。

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; 
} 
1

你想要週期內的陣列從數據庫中返回:

foreach($query as $row) 
{ 
    $category[] = $row['category']; 
} 
0

最明顯的解決方案:

$res = array(); 

foreach ($tab as $val) { 
    $res[] = $val['category']; 
} 
0
$new_array = array_map(function($v){return $v['category'];}, $old_array); 
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方式。

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);