2010-07-16 6 views
0

MySQL 데이터를 사용하여 다차원 배열을 만들려면 어떻게해야합니까? 지금은이 코드를 사용하고 있습니다 :MySQL 데이터를 다차원 배열로 가져 오는 방법은 무엇입니까?

while($row = mysql_fetch_assoc($result)){ 
    $music[$row['artist']][$row['title']][$row['id']][$row['category_id']] = $row['key']; 
} 

그리고 나는 내 데이터를 저장하는 다차원 배열을 사용하는 것이 훨씬 쉬울 것이라고 생각 (아티스트 배열 => 제목 배열 => 아이디, CATEGORY_ID, 키) 하지만 난 데이터베이스에서 데이터를 사용하여 하나를 형성하는 방법을 모르겠다. 나는 봤 거든 정적/로컬 데이터 다차원 배열의 예를 찾을 수있는, 나에게 좋지 않습니다.

또한 실제 사용을 위해 PHP에서 다차원 데이터를 출력하는 방법을 알고 싶습니다. 루프를 사용합니까? 아니면 다른 방법이 있을까요?

그리고 저는 지금까지 stackoverflow에서 얻은 모든 도움 덕분에, 많은 두통을 덜어주었습니다!

+0

이렇게하는 것은 매번하는 것이 비용이 많이 드는 일일 수 있습니다. 이 여분의 배열을 만들 필요없이 루프 내에서 데이터를 처리하는 데 필요한 모든 작업을 수행 할 수 있도록 코드를 구조화하는 것이 좋습니다. –

답변

0
$music = array(); 
while($row = mysql_fetch_assoc($result)){ 
    if (!isset($music[$row['artist']]) { 
     $music[$row['artist']] = array() 
     } 
    $music[$row['artist']][$row['title']]=array('id'=>$row['id'],'category_id'=>$row['category_id'],'key'=>$row['key']; 
    } 

또는 메모리 요구 사항이 정말 중요하지 단순히 경우보다 (나는 이렇게 대부분) :

$music = array(); 
while($row = mysql_fetch_assoc($result)){ 
    if (!isset($music[$row['artist']]) { 
     $music[$row['artist']] = array() 
     } 
    $music[$row['artist']][$row['title']]=$row; 
    } 

두 가지를 사용하는-으로 루프가 작동합니다 - 당신이를 표시 할 가정 나무의 아티스트 인 경우 :

foreach ($music as $artist => $titles) { 
    foreach ($titles as $title => $details) { 
     // do stuff, $details contains all the details for the specific $artist and $title 
     } 
    } 
+0

대단히 고마워,이 정확히 내가 뭘 찾고 있었 :. – user389956

0
var $music = array() 
while($row = mysql_fetch_assoc($result)) 
{ 
    foreach($row as $k => $v) 
    { 
     $music[$key][] = $v; 
    } 
} 

print_r($music); 
관련 문제