【问题标题】:How to make an object associative array in php如何在php中创建对象关联数组
【发布时间】:2016-05-11 10:02:01
【问题描述】:

我正在尝试从数据库中选择信息并将信息存储在关联数组中。到目前为止,我可以选择信息并创建一个存储在数组中的对象,但是我无法使关联起作用。我希望每本书都与标题相关联。

当我尝试将关联推送到数组时,它会在数组中创建一个数组。

public function getBookList()
    {
        $conn = mysqli_connect('localhost', 'root', '') or die ('No connection');
        mysqli_select_db($conn, 'books' ) or die (' database will not open');
        $query = "select title, author, description from book";  
        $result = mysqli_query($conn, $query) or die("Invalid query"); // runs query using
        // open connection

        $count = 0;
        $booksArray= array();
        while($row = mysqli_fetch_row($result))//  while there are rows available
        {

            $booksArray[$count] = new Book($row[0],$row[1],$row[2]);
            $count++;

            array_push($booksArray, array($row[0] => $tempBook));           

        }

        return($booksArray);
        mysqli_close($conn);
    }

【问题讨论】:

    标签: php sql arrays web associative-array


    【解决方案1】:

    直接通过key赋值到数组中:

    $booksArray[$count] = $tempBook = new Book($row[0],$row[1],$row[2]);
    $booksArray[$row[0]] = $tempBook;           
    

    【讨论】:

      【解决方案2】:

      试试这个方法

      $booksArray[$row[0]] = $tempBook;
      

      另外,我看不出你在哪里给$tempBook赋值,我猜new Book($row[0],$row[1],$row[2])应该是这个值。所以,在while循环里面试试:

      $tempBook = new Book($row[0],$row[1],$row[2]);
      $booksArray[$row[0]] = $tempBook;
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-28
        • 1970-01-01
        • 2013-12-09
        • 2014-10-23
        相关资源
        最近更新 更多