将查询结果组织到数组中的最佳方法?

时间:2014-03-03 15:45:12

标签: php mysql loops string-concatenation implode

我的一个页面中有以下代码。在此之前,我执行一个返回多个以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;

0 个答案:

没有答案