如何减少array_multisort函数中的内存

时间:2018-12-30 09:59:27

标签: php arrays multidimensional-array

在我使用array_multisort之前,执行查询并使用循环进行输出 我的问题总是使用array_multisort,它给了我这个错误。

致命错误:允许的内存大小为549453824字节,已用尽(尝试分配524288字节)

更新:在我的php.ini中,memory_limit为1024,我不想再这样做了!

$result = $query->execute();

while( $record = $result->fetchAssoc() ) { 
    $items[] = $record;
}

// Sort by Order_id
 array_multisort(array_column($items, 'nid'), SORT_DESC,
            array_column($items, 'order_id'),      SORT_ASC,
            $items);

更新2:

在此之后,我使用这个

    foreach ($items as $row) {

      $hash[$row['nid']] = $row;
      $name[$row['nid']][] = $row['name'];
      $hash[$row['nid']]['name'] = array_unique($name[$row['nid']]);

      $tagname[$row['nid']][] = $row['tagsdata_name'];
      $hash[$row['nid']]['tagsdata_name'] = array_unique($tagname[$row['nid']]);

      $file[$row['nid']][] = $row['filename'];
      $hash[$row['nid']]['filename'] = array_unique($file[$row['nid']]);
    }
    $resultfinal = ($hash);

    array_multisort(//array_column($resultfinal, 'producttitle_title'), SORT_DESC,
                    array_column($resultfinal, 'created'),      SORT_DESC,
                    array_column($resultfinal, 'changed'),      SORT_DESC,
                    $resultfinal);

0 个答案:

没有答案