将查询分组到子数组中

时间:2011-08-02 22:19:27

标签: php mysql arrays

你好,有2个像这样的表

TABLE products_ids

id_product_unique
1
2


TABLE products_list
id_product     id_product_unique  lang   price
5              2                  en     1.00
65             2                  es     44.15
51             1                  en     53.5
9              1                  es     6.20

是否有可能创建一个结果IN MYSQL ONLY,它将为任何id_product_unique创建一个数组,每个数组都有2个子数组用于“en”lang和“es”lang或者我必须用php处理数据才能得到结果如此个性化?

例如

[0]{
  id_product_unique -> 1

       [0]{
            [id_product]-> 5
            [price] -> 1.00
            [lang] -> en
         }

       [1]{

            [id_product]-> 65
            [price] -> 44.15
            [lang] -> es
        }

  }
[1]
  [id_product_unique]-> 2

// and so on

2 个答案:

答案 0 :(得分:1)

不,不仅仅是在MySQL中。 MySQL处理简单的行&列,甚至不知道PHP数组是什么。只需循环一次。

答案 1 :(得分:0)

在php中你可以使用

<?php

$reformated = null;
foreach ($raw as $key => $value) {
    $reformated[$value['id_product_unique']] = array_merge(
    (array)$reformated[$value['id_product_unique']],
    array(array('price'=>$value['price'], 'lag'=>$value['lang'], 'id_product'=>$value['id_product']))
    );
}
print_r($reformated)."\n\n";