php:如何从mysql SELECT生成2D数组?

时间:2013-04-22 03:28:58

标签: php mysql arrays recursion tree

我有一些问题,请帮助我。

  1. 在PHP / MySQL中,我有一个想要生成二维数组的查询,我该怎么办?
  2. 我有一个php数组代码,如下所示:

    $menu = Array( // I wanna to get data from a SQL SELECT.
        Array('id'=>1,'title'=>'Menu 1',          'parent_id'=>null),
        Array('id'=>2,'title'=>'Sub 1.1',         'parent_id'=>1),
        Array('id'=>3,'title'=>'Sub 1.2',         'parent_id'=>1),
        Array('id'=>4,'title'=>'Sub 1.3',         'parent_id'=>1),
        Array('id'=>5,'title'=>'Menu 2',          'parent_id'=>null),
        Array('id'=>6,'title'=>'Sub 2.1',         'parent_id'=>5),
        Array('id'=>7,'title'=>'Sub Sub 2.1.1',   'parent_id'=>10),
        Array('id'=>8,'title'=>'Sub 2.2',         'parent_id'=>5),
        Array('id'=>9,'title'=>'Menu 3',          'parent_id'=>null),
        Array('id'=>10,'title'=>'Menu 3',          'parent_id'=>null),
    );
    

    我怎么能用mysql生成这个简单的数组?

    <?php
    mysql_connect("localhost", "mysql_user", "mysql_password") or
        die("Could not connect: " . mysql_error());
    mysql_select_db("mydb");
    
    $result = mysql_query("SELECT * FROM mytable");
    
    //this is wrong,but I wanna to reach this effect↓↓↓↓↓↓↓↓
    while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
        echo "Array('id'=>$row["id"],'title'=>'$row["title"]','parent_id'=>$row["parent_id"]),"
    
    }
    
    ?>
    

2 个答案:

答案 0 :(得分:1)

创建一个零索引的数组并向其追加数组。

$rows = array();
while ($row = mysql_fetch_array($result, MYSQL_NUM)) {
    $rows[] = $row;
}

答案 1 :(得分:0)

$data = array();

for ($i=1; $i<4; $i++) {
    $row = array();
    $row[] = $i;
    $row[] = $i*3;
    $row[] = $i*9;

    $data[] = $row;
}

var_dump($data);

--output:--
array(3) {
  [0]=>
  array(3) {
    [0]=>
    int(1)
    [1]=>
    int(3)
    [2]=>
    int(9)
  }
  [1]=>
  array(3) {
    [0]=>
    int(2)
    [1]=>
    int(6)
    [2]=>
    int(18)
  }
  [2]=>
  array(3) {
    [0]=>
    int(3)
    [1]=>
    int(9)
    [2]=>
    int(27)
  }
}