我的一个页面中有以下代码。在此之前,我执行一个返回多个以alias_code为关键字行的查询。这段代码创建了一个字符串数组数组,回显到一个javascript函数,用于填充图形上的点。我已多次对此进行了分析,但我仍然觉得有一种更有效的方法可以做到这一点。我确实意识到如果我的字符串太大我会冒内存不足的风险,但是我会在查询中限制这个,因为我想避免使用额外的子数组或使用implode / join。有没有人对加快这个问题有任何想法?
$detailArray = array();
$prevAliasCode = '';
$valuesStr = '';
while ($detailRow = mysqli_fetch_array($detailResult)) {
$aliasCode = $detailRow['alias_code'];
if ($aliasCode <> $prevAliasCode) {
if ($valuesStr <> '')
$detailArray[$prevAliasCode] = $valuesStr;
$valuesStr = '';
}
if ($valuesStr <> '')
$valuesStr = $valuesStr . ', ';
$valuesStr = $valuesStr .
"['" .
$detailRow['as_of_date'] . "', " .
$detailRow['difficulty'] . ", " .
$detailRow['price_usd'] . "]";
$prevAliasCode = $aliasCode;
}
$detailArray[$prevAliasCode] = $valuesStr;