2011-03-17 94 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