Как отсортировать эти массивы относительно друг друга в PHP?

Есть два массива. В одном содержится имя и цена, допустим цена выполнения заказа на бирже. И во втором массиве содержится порядок в котором должны идти эти элементы. Как это сделать(отсортировать)?

$arr = [
    [
        $name = 'Masha';
        $price = '18';
    ],
    [
        $name = 'Masha';
        $price = '63';
    ],
    [
        $name = 'Masha';
        $price = '73';
    ],
    [
        $name = 'Masha';
        $price = '42';
    ],
];
$arr1 = [63,18,42,73];

Нужно получить:

$arr = [
        [
            $name = 'Masha';
            $price = '63';
        ],
        [
            $name = 'Masha';
            $price = '18';
        ],
        [
            $name = 'Masha';
            $price = '42';
        ],
        [
            $name = 'Masha';
            $price = '73';
        ],
    ];
    $arr1 = [63,18,42,73];

Исправлено: Появилась идея. Перебрать $arr1(допустим элемент из этого массива будет равен $arr1_elem) и внутри этого перебора сделать ещё один перебор с получением $price и элементом массива $arr($arr1_elem). Если $arr1_elem = $price, то $arr_elem = $arr_elem у которого $price = $arr1_elem


Ответы (1 шт):

Автор решения: midnightelf18

у меня получилось так

<?php

function sort_arr_by_arr($data_arr, $order_arr)
{
    $sort_arr = [];

    for ($i = 0; $i < count($order_arr); $i++)
    {
        for ($j = 0; $j < count($data_arr); $j++)
        {
            if ($order_arr[$i] == $data_arr[$j]['price']) 
                $sort_arr[] = $data_arr[$j];
        }
    }
    
    return $sort_arr;
}


$arr = [
    ['name' => 'Masha', 'price' => '18'],
    ['name' => 'Masha', 'price' => '63'],
    ['name' => 'Masha', 'price' => '73'],
    ['name' => 'Masha', 'price' => '42'],
];
$arr1 = [63,18,42,73];


// вывод функции
var_dump(sort_arr_by_arr($arr, $arr1));

→ Ссылка