如何在 php 中创建对象关联数组

How to make an object associative array in php

我正在尝试 select 来自数据库的信息并将信息存储在关联数组中。到目前为止,我一直在处理 select 信息并创建一个存储在数组中的对象,但是我无法使关联正常工作。我希望每本书都与书名相关联。

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

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);
    }

直接通过key赋值入数组:

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

试试这个方法

$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;