2013-06-27 104 views
0

我有ID ASC這樣在mysql中排序數據:如何在PHP中對數組進行排序?

注:總不能在MySQL中,共有來自價格* total_item - >例如

 id  name   total 
    ---- ----------- ---------- 
    1  item1   3 
    2  item2   5 
    3  item3   1 
    4  item4   2 
    5  item5   4 

,我想排序在PHP

首先,我總排序,以獲得最高總排在首位

//insert total into list 
for($i=0;$i<5;$i++){ 
    $total_list[] = $total; 
    $b = $total_list; 
    rsort($b); 

    //display total from highest to lowest 
    echo $b[$i]; 
} 

結果將是這樣的:

  id  name   total 
     ---- ----------- ---------- 
     1  item1   5 
     2  item2   4 
     3  item3   3 
     4  item4   2 
     5  item5   1 

沒關係,我已經排好序的總得按照我上面的代碼

所以爲了獲取名稱排序也一樣,我必須對它進行排序,但我已經嘗試過了相同的方式,我總排序,但結果是不同的

不,我要的結果是這樣的

  id  name   total 
     ---- ----------- ---------- 
     1  item2   5 
     2  item5   4 
     3  item1   3 
     4  item4   2 
     5  item3   1 
+3

你爲什麼不在你的mysql select中進行排序?像:select * from table name order by total,name – bitfiddler

+0

@deceze - no我認爲它不是重複的 –

+0

@bitfiddler - 不,因爲總數不在mysql中 –

回答

0

我想是這樣的:使用asort

$data = array(
"item1"=>"1", 
"item2"=>"2", 
"item3"=>"5", 
"item4"=>"3", 
"item5"=>"4" 
); 

asort($data); 

print_r($data); 

Resut: Array ([item1] => 1 [item2] => 2 [item4] => 3 [item5] => 4 [item3] => 5) 

爲了獲得highest total value and name,獲取數組中的最後一個元素。儘管您可以使用foreach來操作名稱和鍵。

如果我們增加的foreach這樣的:

foreach($data as $key=>$val){ 
    echo "Name:".$key." Total:".$val."<br>"; 
} 

Result: 

Name:item1 Total:1 
Name:item2 Total:2 
Name:item4 Total:3 
Name:item5 Total:4 
Name:item3 Total:5 
+0

所以如何使名稱和相同的陣列中的總像這樣: $數據=陣列( 「ITEM1」=> 「1」, 「ITEM2」=> 「2」, 「項目3」=> 「5」, 「item4」=>「3」, 「item5」=>「4」 ); –

+0

不,這不是我想問的問題,我想問一下如何在數組中找到名字和總數? –

+0

@Rio Eduardo對不起,我剛剛更新了我的答案,你可以創建一個這樣的數組:例如'$ data [$ name] = $ total'。你可以先研究php數組。 – JunM

1

這可以(也應該)都可以從SQL查詢中完成的;是這樣的:

SELECT `id`, `name`, `price` * `total_item` AS `total` 
FROM `mytable` 
ORDER BY 
    `price` * `total_item` DESC, 
    `id` ASC 

ORDER ING,你不能使用AS給出的名字,但你可以爲了在同樣的計算。

+0

但total_item不在mysql –

+0

它從哪裏來?我看到你說過它在'COUNT(\'id \')',但是你刪除了那條評論。那是對的嗎? –

+0

yeah count(id),但total_item不在mysql中,它來自$ total_demand的總和,需求數量在表格需求中。我在表項中有3044條記錄,在表需求中有60,000條記錄,所以如果我使用連接表,這是不可能的,所以我更喜歡PHP中的數組而不是mysql。 –