【问题标题】:php :How to generate 2D array from mysql SELECT? [closed]php:如何从 mysql SELECT 生成二维数组? [关闭]
【发布时间】:2013-04-22 03:28:58
【问题描述】:

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

  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"]),"
    
    }
    
    ?>
    

【问题讨论】:

    标签: php mysql arrays recursion tree


    【解决方案1】:

    创建一个索引为零的数组并将数组附加到它。

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

    【讨论】:

      【解决方案2】:
      $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)
        }
      }
      

      【讨论】:

        猜你喜欢
        • 2016-02-10
        • 2016-12-07
        • 1970-01-01
        • 1970-01-01
        • 2014-10-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多