2014-04-04 64 views
1

我有我使用natsort排序的字母數字值。代碼是 -如何存儲natsort值

$getPlatform = $conn->prepare('SELECT DISTINCT platform FROM tooldata'); 
$getPlatform->execute(); 
    while($row = $getPlatform->fetch(PDO::FETCH_ASSOC)) { 
     foreach($row as $key) { 
     $platform[] = $key; 
     } 
    } 
natsort($platform); 

現在我堅持如何將數值這個natsort存儲在數組? 我嘗試使用foreach,但它給出了錯誤。 請幫忙。 我對php很陌生。

+0

我厭倦了這一點,它返回1 .. thts所有:( – user3496418

+0

這就是我說的,它返回一個布爾值做一個'的print_r($平臺);'了'natsort'後看 –

+0

它給出了輸出 - [key_output](http://pastebin.com/hurY12r8) – user3496418

回答

0

natsort返回一個布爾值,所以你不應該存儲它。它將直接在原始數組上應用排序。

+0

但我想在我的圖表的x軸上使用這些值。 是否有任何其他方式來排序這樣的值? – user3496418

+0

是'natsort'爲你工作嗎?你可以發佈輸出嗎? –

+0

輸出就像 - [natosrt_output](http://pastebin.com/YS8cm34v) – user3496418

0

natsort通過引用接受參數。它意味着natsort函數所做的任何更改都會反映在原始數組中。

natsort($platforms); 
print_r($platforms); 

另一種選擇可以直接從數據庫中排序數據,但它不會做自然排序。

$getPlatform = $conn->prepare('SELECT DISTINCT platform FROM tooldata ORDER BY platform'); 

$getPlatform->execute(); 

    while($row = $getPlatform->fetch(PDO::FETCH_ASSOC)) 
    { 
     foreach($row as $key) 
      { 
       $platform[] = $key; 
      } 
    } 

print_r($platform); 
+0

ORDER BY是一個不錯的選擇。 – user3496418

+0

'ORDER BY'和'natsort()'不是一回事。 –

+0

natsort是一種自然排序,同時按照字母數字排序進行排序。即(A1,B1,B10,B2); natsort的輸出爲(A1,B1,B2,B10),輸出的順序爲(A1,B1,B10,B2):) –