2016-09-20 1 views
-1

order_status를 키로 저장하고 값으로 계산하는 새 배열을 만들고 싶습니다. 이제 두 가지 접근법이 있습니다.mysql 결과를 기반으로 새 배열을 생성하기위한 기본 접근 방식

어느 접근 방식이 선호됩니까?

접근 # 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']; 
} 
+0

둘 다 사용할 수 있지만 읽기 쉽고 비트 효율이 더 좋으므로 두 번째 것이 좋습니다. – Rizier123

답변

1

key => value 무결성을 유지하는 것은 다시 얻을 필요가 결국 할 데이터의 원래 관계를 유지하기 때문에 두 번째 방법이 바람직하다 어쨌든 첫 번째 접근에서와 같이 2 개의 개별 배열을 사용했다면!

또한, 루프는해야한다 : 당신은 수정을 다음과 같이 두 번째 방법을 사용할 필요가

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

명확한 설명. –

+0

감사합니다. 내 프로젝트/코딩 경험으로 인해 항상이 방향으로 나를 밀어 붙이므로 기쁜 마음으로 공유 할 수있다. –

+0

내가 일했던 프로젝트가 나를 이탈리아 식당으로 몰아 넣었다. –

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']; 
    } 
+0

아니요, 정확하지 않습니다. 그러면 배열이 다차원이됩니다. –

+0

같은 상태가 두 번 오면 단일 차원 배열의 이전 값을 덮어 씁니다. – kaustubh

+0

그럼'[] '는 배열에 항목을 추가하지 않는다고 말하는 겁니까? –