2013-01-14 34 views
-1

我想對數組的內容進行排序,具體取決於加載到頁面中的動態數據。在PHP中的Array()中使用變量

for ($i = 0; $i < $x; $i++) { 
    if ($string != "") $string = $string . ", "; 
    $string = $string . "\"$id[$i]\" => \"$land[$i]\""; 

} 
echo $string . "<br>"; //1 
$my_array = array($string); 
print_r($my_array); //2 

asort($my_array); 
print_r($my_array); //3 


$my_array = array("832838" => "32", "233463" => "3"); 

asort($my_array); 
print_r($my_array); //4 

產生這樣的輸出

1 "832838" => "32", "233463" => "3" 
2 Array ([0] => "832838" => "32", "233463" => "3") 
3 Array ([0] => "832838" => "32", "233463" => "3") 
4 Array ([233463] => 3 [832838] => 32) 

1號線是什麼,是從輸出語句3號線是通過ASORT使用變量投入,以及4號線直接輸入,檢查其中的錯誤是,當通過使用變量的array()函數發生混亂時,是否有解決方法?

+1

嘗試'usort($ my_array,'custom_function')'。你將需要創建'function custom_function($ a,$ b)',你可以在那裏比較它們。 –

+0

這看起來會非常複雜,當問題與數組(),而不是開始在for循環中排序 –

+0

,爲什麼不在那裏創建數組呢?那肯定會爲你節省很多的麻煩 – shawndreck

回答

0

如果你想創建像你這樣的字符串數組。使用這個:

$string = '"832838" => "32", "233463" => "3"'; 
$my_array = eval("return array({$string});"); 
+0

這對安全而言是一件壞事 –

+0

完美,謝謝 –

0

使用rsort函數來解決。

<?php 
$fruits = array("lemon", "orange", "banana", "apple"); 
rsort($fruits); 
foreach ($fruits as $key => $val) { 
    echo "$key = $val\n"; 
} 
?> 

上面的例子將輸出:

0 = orange 
1 = lemon 
2 = banana 
3 = apple 
+0

排序並不是問題的根本在於它的數組創建問題 –