I have an array containing fruits and vegetables that are all mixed together. I would like to group each item by their type ie 'vegetable' (indicated by value = 1) or 'fruit'(indicated by value = 2) and then have each item positioned in the order assigned to it.
Here is my starting array:
array(3) {
[0]=>
array(16) {
["name"]=> "apples"
["position"]=> "1"
["basket"]=> "2"
}
[1]=>
array(16) {
["name"]=> "potatoes"
["position"]=> "2"
["basket"]=> "1"
}
[2]=>
array(16) {
["name"]=> "onions"
["position"]=> "1"
["basket"]=> "1"
}
[3]=>
array(16) {
["name"]=> "oranges"
["position"]=> "3"
["basket"]=> "2"
}
[4]=>
array(16) {
["name"]=> "tomatoes"
["position"]=> "4"
["basket"]=> "1"
}
[5]=>
array(16) {
["name"]=> "grapes"
["position"]=> "5"
["basket"]=> "2"
}
[6]=>
array(16) {
["name"]=> "avocado"
["position"]=> "2"
["basket"]=> "2"
}
[7]=>
array(16) {
["name"]=> "bean"
["position"]=> "5"
["basket"]=> "1"
}
[8]=>
array(16) {
["name"]=> "pineapple"
["position"]=> "4"
["basket"]=> "2"
}
[9]=>
array(16) {
["name"]=> "pepper"
["position"]=> "3"
["basket"]=> "1"
}
}
Here is the result I am wanting to achieve:
array(3) {
[0]=>
array(16) {
["name"]=> "onions"
["position"]=> "1"
["basket"]=> "1"
}
[1]=>
array(16) {
["name"]=> "potatoes"
["position"]=> "2"
["basket"]=> "1"
}
[2]=>
array(16) {
["name"]=> "pepper"
["position"]=> "3"
["basket"]=> "1"
}
[3]=>
array(16) {
["name"]=> "tomatoes"
["position"]=> "4"
["basket"]=> "1"
}
[4]=>
array(16) {
["name"]=> "bean"
["position"]=> "5"
["basket"]=> "1"
}
[5]=>
array(16) {
["name"]=> "apples"
["position"]=> "1"
["basket"]=> "2"
}
[6]=>
array(16) {
["name"]=> "avocado"
["position"]=> "2"
["basket"]=> "2"
}
[7]=>
array(16) {
["name"]=> "oranges"
["position"]=> "3"
["basket"]=> "2"
}
[8]=>
array(16) {
["name"]=> "pineapple"
["position"]=> "4"
["basket"]=> "2"
}
[9]=>
array(16) {
["name"]=> "grapes"
["position"]=> "5"
["basket"]=> "2"
}
}
In the 'hopeful' result, it can be seen that there are 2 groups for the field 'basket', namely 1 & 2 and therefore the array must be "ordered" that it is 'grouped' in sequence.
Finally, each 'group' item must then be sorted in its own sequence.
This is what I have thus far:
uasort($array, function($a, $b) {return $a['basket'] - $b['basket'];});
Can I adapt this to suit my need?