Yii2. Как извлечь map с массива?


Получение массива в формате ключ-значение (map), используя ArrayHelper с пакета Yii2 делает задачу очень простой.

Например, для простой карты:

$arr = [
    ['id' => '111', 'name' => 'a', 'class' => 'x'],
    ['id' => '222', 'name' => 'b', 'class' => 'x'],
    ['id' => '333', 'name' => 'c', 'class' => 'y'],
);
 
$result = ArrayHelper::map($arr, 'id', 'name');
// the result is:
// [
//     '111' => 'a',
//     '222' => 'b',
//     '33'  => 'c',
// ]

Или дяля получения с учетом вложенности (optgroup, например):

$arr = [
    ['id' => '111', 'name' => 'a', 'class' => 'x'],
    ['id' => '222', 'name' => 'b', 'class' => 'x'],
    ['id' => '333', 'name' => 'c', 'class' => 'y'],
);
$result = ArrayHelper::map($arr, 'id', 'name', 'class');
// the result is:
// [
//     'x' => [
//         '111' => 'a',
//         '222' => 'b',
//     ],
//     'y' => [
//         '333' => 'c',
//     ],
// ]
, ,

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *