打印数组中的问题(错误标量值)

时间:2015-08-14 10:11:04

标签: php

我无法找到打印此阵列的方法。这是我的剧本:

foreach ($task_types as $key => $value) {
    echo $key;
    $taskqu = mysql_query("SELECT COUNT(*), task_type FROM dotp_tasks WHERE task_type = '$key'");
    while ($row = mysql_fetch_array($taskqu)) {
        $taskqu[$row['task_type']] = $row[0];
    }
}
echo "<pre>";
print_r($taskqu);
echo "</pre>";

当我尝试打印时,我得到的错误是:

  

警告:不能在

中使用标量值作为数组

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

使用数组语法取消引用标量值会触发该警告。例如:

$a = 1;
$a[] = 1;

触发器:

  

PHP警告:不能在第5行的/Users/darragh/Sites/__.php中使用标量值作为数组

$taskqu的初始值是多少?因此,它显然不是一个数组:

$taskqu[$row['task_type']] = $row[0];

是无效操作并引发此PHP警告。

这是因为$taskqu已经初始化,返回值为mysql_query,(因为您的查询是SELECT语句)是resource类型或{ {1}}。

无论哪种方式初始化值,都不是数组,因此不能使用数组语法取消引用。

希望这会有所帮助:)