如何将MySQL数据导入多维数组?

时间:2010-07-16 00:22:45

标签: php mysql

如何使用MySQL数据形成多维数组?我现在正在使用此代码:

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

我认为使用多维数组存储我的数据会更容易(艺术家数组=>标题数组=> id,category_id,键)但我不知道如何使用数据形成一个数据来自数据库。我用谷歌搜索,只能找到静态/本地数据多维数组的例子,这对我没有好处。

我也想知道如何在php中输出多维数据以供实际使用。我会使用循环吗?或者会有另一种方式吗?

我只想感谢到目前为止我在stackoverflow上获得的所有帮助,这给我带来了很大的麻烦!

2 个答案:

答案 0 :(得分:0)

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

print_r($music);

答案 1 :(得分: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;
    }

使用两个for-as循环可行 - 假设您想要显示艺术家树而不是标题子树:

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