phparraysmapping

Map values from one flat array to another flat array


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...


Solution

  • It seems like this is more appropriate than a sort:

    $products = array_map(function($i) use ($products) {
       return $products[$i];
    }, $sort);