我正在尝试在 PHP 函数中创建多维数组。但这似乎不起作用。我写的函数:
//Get newsitems
function getNews() {
$result = mysql_query("SELECT * FROM news WHERE archived='0' ORDER BY `id` DESC")
or die(mysql_error());
$array = array();
while($row = mysql_fetch_array($result)) {
$array[] = array ( 'title' => $row['title'],
'content' => $row['content'],
'date' => $row['pagid'],
'image' => $row['image'],
'youtube' => $row['youtube']
}
return $array;
}
然后我尝试通过这样做来获取数组:
$aNews = getNews();
当我打印这个数组时,没有显示任何内容。我究竟做错了什么?数据库查询不会返回任何错误。
最佳答案
您有一个语法错误,您没有关闭括号并终止数组周围的行。
更改为:
$array[] = array ( 'title' => $row['title'],
'content' => $row['content'],
'date' => $row['pagid'],
'image' => $row['image'],
'youtube' => $row['youtube'] ); // <-- this
因此,您应该会收到 fatal error ,白屏通常表示 fatal error ,但错误报告/显示已关闭。为了将来的调试,您可以查看错误日志或打开错误:
error_reporting(E_ALL);
ini_set('display_errors', '1');
旁注:
mysql_*
库已弃用,请考虑升级到现代 API,例如 MySQLi 或 PDO。- 如果您必须使用此库,至少更改为
mysql_fetch_assoc()
,因为您只对关联数组感兴趣。
关于php - 多维 PHP 数组保持为空,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17609671/