基于mysql结果创建新数组的首选方法

时间:2016-09-20 12:11:06

标签: php arrays

我想创建一个新的数组,它将order_status存储为键,并计为值。现在我有两种方法。

哪种方法是首选方法?

方法#1

$ordersStatus = array();
$count = array();
while ($row = my_db_fetch_array($sql)) {
        $ordersStatus[] = $row['orders_status'];
        $count[] = $row['count'];
}
$orders_status_count = array_combine($ordersStatus, $count);

方法#2

while ($row = my_db_fetch_array($sql)) {
        $orders_status_count[$row['orders_status']] = $row['count'];
}

2 个答案:

答案 0 :(得分:1)

第二种方法更可取,因为保持key => value完整性会保留数据的原始关联,如果您在第一种方法中使用了2个独立的数组,最终还是需要返回!

此外,循环应该是:

while ($row = my_db_fetch_array($sql)) {
    $orders_status_count[$row['orders_status']] = $row['count'];
}

答案 1 :(得分:0)

您必须使用第二种方法进行以下修改。

   // if same status accrued then data will not overwrite ... 
    while ($row = my_db_fetch_array($sql)) {
       $orders_status_count[$r['orders_status']][] = $r['count'];
    }