如何在 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;
我正在尝试 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;