marc_s
marc_s

Reputation: 1047

Change position of elements in array

I have a simple question: Query returns array in which I would like to change order of elements in PHP.

I have an array like this:

$typesSumAr = array( 'break', 'private absence', 'sick leave', 'vacation', 'work', 'work absence' );

I would like to have an array in this order:

$typesSumAr = array( 'work', 'break', 'sick leave', 'vacation', 'private absence', 'work absence' );

The are not always all elements in array, it could be only two for example, so I cannot hardcode the array. Do I need to make if statemenets to find out if key exists and then order it manually?

Thank you for your answer.

Upvotes: 1

Views: 648

Answers (2)

John
John

Reputation: 109

There are lots of great array sorting function depending on how you want to sort it. Have a look here http://www.php.net/manual/en/array.sorting.php or even based on your own function via uksort (http://www.php.net/manual/en/function.uksort.php)

Upvotes: 1

meouw
meouw

Reputation: 42140

Seeing as you have an array in the order you prefer, your problem boils down to keeping the elements that are also present in another array. PHP has a function for exactly that: array_intersect

array_intersect returns an array containing all the values of its first array argument that are present in all the arguments. Note that keys are preserved.

Upvotes: 2

Related Questions