2011-03-17 49 views
2

我想從一個MySQL結果集中形成一個特定的多維數組。從MySQL建立一個多維數組與php

我想它看起來就像這樣:

array(
'product_name' => 'prod_1', 
'categories' => array(1,2,3,4) 
); 

的分貝結果返回一個數組,看起來像這樣

Array 
(
[0] => Array 
    (
     [id] => 1 
     [product_name] => prod_1 
    ) 

[1] => Array 
    (
     [id] => 2 
     [product_name] => prod_1 
    ) 

[2] => Array 
    (
     [id] => 3 
     [product_name] => prod_1 
    ) 

[3] => Array 
    (
     [id] => 4 
     [product_name] => prod_1 
    ) 

正如你可以看到,我想組產品名稱並將其放入另一個陣列中

有沒有人有關於如何操作的提示?

+0

其實哪裏是從類別?你想要一個數組中的所有id和另一個數組中的所有產品名? – kjy112 2011-03-17 23:42:13

+0

什麼是你的SQL查詢? – 2011-03-17 23:45:25

+0

我的查詢:'SELECT id,product_name FROM parts'非常簡單,我想要第一個維度包含分組的product_name,第二個維度包含與其關聯的所有ID – dangermark 2011-03-17 23:49:29

回答

0
$yourarray = array(array('id'=>1, 'product_name' => 'prod_1'), array('id'=>2, 'product_name' => 'prod_2'),array('id'=>3, 'product_name' => 'prod_3')); 
$multiarray = array(); 

for($i=0; $i<count($yourarray);$i++){ 
    $multiarray['product_name'][] = $yourarray[$i]['product_name']; 
    $multiarray['product_id'][] = $yourarray[$i]['id']; 
} 

print_r($yourarray); //original array 
print_r($multiarray); //gives you multi array 

這是什麼類似的東西?

您的原始數組:

Array 
(
    [0] => Array 
     (
      [id] => 1 
      [product_name] => prod_1 
     ) 

    [1] => Array 
     (
      [id] => 2 
      [product_name] => prod_2 
     ) 

    [2] => Array 
     (
      [id] => 3 
      [product_name] => prod_3 
     ) 

) 

結果將打印:

Array 
(
    [product_name] => Array 
     (
      [0] => prod_1 
      [1] => prod_2 
      [2] => prod_3 
     ) 

    [product_id] => Array 
     (
      [0] => 1 
      [1] => 2 
      [2] => 3 
     ) 
) 
0
$yourarray = array(array('id'=>1, 'product_name' => 'prod_1'), array('id'=>2, 'product_name' => 'prod_1'), array('id'=>3, 'product_name' => 'prod_1'),array('id'=>4, 'product_name' => 'prod_1')); 

$multiarray = array(); 
foreach ($yourarray as $value) { 
    if(!isset($multiarray['product_name'])) { 
     $multiarray['product_name'] = $value['product_name']; 
    }  
    $multiarray['categories'][] = $value['id']; 
} 
print_r($multiarray); 
+0

這非常接近,但是會輸出所有類別ID for 1產品,而不是隻有id與該產品相關 – dangermark 2011-03-20 22:44:14

+0

您的陣列只有1個產品,名爲prod_1,您可以添加prod_2,prod_3,...並寫入所需的數組? – 2011-03-21 20:29:14