2011-03-17 4 views
2

mysql 결과 집합에서 특정 다차원 배열을 형성하려고합니다.mysql에서 다차원 배열을 PHP로 작성

나는 다음과 같이하고 싶습니다 : 당신이 볼 수 있듯이

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

DB를 결과이

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 
    ) 

같은 형태의 배열을 반환, 내가 그룹 제품을 싶습니다 id를 다른 배열에 넣으십시오.

아무에게도이 작업을 수행하는 방법에 대한 정보가 있습니까?

+0

을 곳에서 카테고리입니까? 하나의 배열에있는 모든 ID와 다른 ID에있는 모든 제품 이름을 원하십니까? – kjy112

+0

SQL 쿼리가 무엇입니까? –

+0

내 검색어 :'SELECT id, product_name FROM parts' 첫 번째 차원에는 그룹화 된 product_name이 포함되고 두 번째 차원에는 모든 ID가 포함됩니다. – dangermark

답변

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를 출력합니다. 1 제품 대신 id가 해당 제품과 관련 있음 – dangermark

+0

배열에 prod_1이라는 제품이 1 개만 있습니다. prod_2, prod_3 ...을 추가하고 필요한 배열을 쓸 수 있습니까? –