bazilio2010
@bazilio2010
Мужчина

Как сортировать многомерный массив по значениям другого немногомерного массива?

Нужно чтоб второй массив был рассортирован по значениям второго
Еще сложность что у второго массива может быть ключей больше чем у первого, и они идти должны дальше по порядку

1 массив
Array
(
    [1] => B SPB
    [2] => Z SPZ
    [3] => A SPA
    [4] => C SPC
)


2 массив
Array
(
    [A SPA] => Array
        (
            [title] => A SPA
            [resources] => Array
                (
                    [208] => 208
                )
        )

    [B SPB] => Array
        (
            [title] => B SPB
            [resources] => Array
                (
                    [232] => 232
                )
        )

    [C SPC] => Array
        (
            [title] => C SPC
            [resources] => Array
                (
                    [257] => 257
                )
        )

    [HTD] => Array
        (
            [title] => HTD
            [resources] => Array
                (
                    [277] => 277
                )
        )
        
    [Z SPZ] => Array
        (
            [title] => Z SPZ
            [resources] => Array
                (
                    [188] => 188
                )
        )
)
  • Вопрос задан
  • 88 просмотров
Решения вопроса 1
bitniks
@bitniks
Go/PHP/Symfony developer
Нужно перебрать первый массив, получать значение из второго, складывать в результирующий массив, и делать unset этого значения во втором. После перебора всех значений первого массива, результат объединить (array_merge) с тем, что осталось во втором массиве

$resultArray = [];
foreach ($firstArray as $key) {
    if (isset($secondArray[$key])) {
        $resultArray[$key] = $secondArray[$key];
        unset($secondArray[$key]);
    }
}

$resultArray = array_merge($resultArray, $secondArray);


UPDATE проверил и поправил
sandbox.onlinephpfunctions.com/code/cc9e81e851d84c...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы