php - Sort array into alternating smallest largest values?
232
Does anyone know how to sort an array into alternating smallest largest values?
I.E.
Array (10, 2, 5, 1, 30, 1, 7)
Should be :
(30, 1, 10, 1, 7, 2, 5)
EDIT:
Forgot to mention the arrays are associative, so:
Array("A"=>10, "B"=>2, "C"=>5, "D"=>1, "E"=>30, "F"=>1, "G"=>7)
Should become:
("E"=>30, "D"=>1, "A"=>10, "F"=>1, "G"=>7, "B"=>2, "C"=>5)
Answer
Solution:
Sort your array then push elements from beginning and end of the array alternatively:
returns:
Answer
Solution:
Answer
Solution:
I can't tell you the exact syntax, my php is very rusty, but what you can do:
Sort your array in descending order
Split in in half, let say array A and B;
Create a new array and add each element from A and B in order
$A[i], $B[count($B)-1-i]
This should give you what you need
Answer
Solution:
There is no predefined way to do this. However, php allows for a user sort function
which you can customise to sort the array in the way you require.