Как сгруппировать массив по значениям ключей в php - PullRequest
0 голосов
/ 08 июля 2019

У меня есть массив. И я должен отсортировать этот массив, а затем отделить его как другой массив.

Array
(
    [0] => Array
        (
            [brand_id] => 1
            [product_type] => 1

        )

    [1] => Array
        (
            [brand_id] => 2
            [product_type] => 1

        )

     [2] => Array
        (
            [brand_id] => 1
            [product_type] => 1

        )
     [3] => Array
        (
            [brand_id] => 2
            [product_type] => 1

        )
)

Я сделал сортировку с использованием usort

function sortByOrder($a, $b) {
            return $a['brand_id'] - $b['brand_id'];
}

usort($product_details, 'sortByOrder');

Мне нужно сгруппировать этот массив на основе brand_id.

Ожидаемый результат:

Имя массива и идентификатор бренда.

Затем я добавлю его в БД в виде двух разных записей


Array
(
    [0] => Array
        (
            [brand_id] => 1
            [product_type] => 1

        )

    [1] => Array
        (
            [brand_id] => 1
            [product_type] => 1

        )
)

Array
(
    [0] => Array
        (
            [brand_id] => 2
            [product_type] => 1

        )

    [1] => Array
        (
            [brand_id] => 2
            [product_type] => 1
        )
)

1 Ответ

0 голосов
/ 08 июля 2019

Вы можете использовать extract для создания динамического массива,

/* after your sorting logic */
$result = [];
foreach ($product_details as $key => $value) {
    // grouping data as per brand id
    $result['brand_id'.$value['brand_id']][] = $value;
}
extract($result);
print_r($brand_id1);
print_r($brand_id2);

Рабочая демонстрация .

Вывод: -

Array
(
    [0] => Array
        (
            [brand_id] => 1
            [product_type] => 1
        )

    [1] => Array
        (
            [brand_id] => 1
            [product_type] => 1
        )

)
Array
(
    [0] => Array
        (
            [brand_id] => 2
            [product_type] => 1
        )

    [1] => Array
        (
            [brand_id] => 2
            [product_type] => 1
        )

)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...