0
有誰知道如何將關聯數組排序爲交替最大最小值?如何將關聯數組排序爲可選最大最小順序?
I.E.
array("A"=>10, "B"=>2, "C"=>5, "D"=>1, "E"=>30, "F"=>1, "G"=>7)
應該改爲:
array("E"=>30, "D"=>1, "A"=>10, "F"=>1, "G"=>7, "B"=>2, "C"=>5)
感謝
有誰知道如何將關聯數組排序爲交替最大最小值?如何將關聯數組排序爲可選最大最小順序?
I.E.
array("A"=>10, "B"=>2, "C"=>5, "D"=>1, "E"=>30, "F"=>1, "G"=>7)
應該改爲:
array("E"=>30, "D"=>1, "A"=>10, "F"=>1, "G"=>7, "B"=>2, "C"=>5)
感謝
基礎上回答到以前的版本這個問題:
$myArray = array("A"=>10, "B"=>2, "C"=>5, "D"=>1, "E"=>30, "F"=>1, "G"=>7);
asort($myArray);
$myArrayKeys = array_keys($myArray);
$newArray = array();
while (!empty($myArray)) {
$newArray[array_shift($myArrayKeys)] = array_shift($myArray);
if (!empty($myArray))
$newArray[array_pop($myArrayKeys)] = array_pop($myArray);
}
var_dump($newArray);
,或者,如果你想最大的第一:
$myArray = array("A"=>10, "B"=>2, "C"=>5, "D"=>1, "E"=>30, "F"=>1, "G"=>7);
asort($myArray);
$myArrayKeys = array_keys($myArray);
$newArray = array();
while (!empty($myArray)) {
$newArray[array_pop($myArrayKeys)] = array_pop($myArray);
if (!empty($myArray))
$newArray[array_shift($myArrayKeys)] = array_shift($myArray);
}
var_dump($newArray);
不錯!謝謝! – ojsglobal
我在結果示例中看不到任何排序算法。你能指出它嗎? –
我認爲最大,最小,次最大,最小最小等等。 –
那麼問題是什麼?首先對數組進行升序或降序排序,然後對其進行迭代,然後以任意順序構建輸出數組。 – arkascha