I have an array of products and i want to sort them with another array.
$products = array(
0 => 'Pro 1',
1 => 'Pro 2',
2 => 'Pro 3'
);
$sort = array(1,2,0);
array_multisort($products, $sort);
Array should now be ...
$products = array(
0 => 'Pro 2',
1 => 'Pro 3',
2 => 'Pro 1'
);
I don't seem to be using array_multisort correctly. Ive tried different ways for 2 hours now...
It seems like this is more appropriate than a sort:
$products = array_map(function($i) use ($products) {
return $products[$i];
}, $sort);
array_multisort
sorts the 2nd array and applies the sorting order to the 1st one. To do your job the sorting array has to be $sort = array(2,0,1);
(implies: bring 2nd element to 0, 3rd element to 1 and 1st element to 2).
You simply can use
foreach ($sort as $key) {
$sorted_products[] = $products[$key];
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With