Для получения полного доступа
зарегистрируйтесь

Индексация массива с помощью array_column.


Даже в коде Yii2 в yii/db/Query, где обработка indexBy идет индексация перебором rows в цикле, хотя есть способ использовать array_column для индексации массива по ключу. пример:

$users = [
    ['id' => 1, 'name' => 'Bob', 'age' => 30],
    ['id' => 12, 'name' => 'Alice', 'age' => 20],
    ['id' => 34, 'name' => 'Trump', 'age' => 69]
];

$users = array_column($users, null, 'id');
 
// В результате
$users = [
    1 => ['id' => 1, 'name' => 'Bob', 'age' => 30],
    12 => ['id' => 12, 'name' => 'Alice', 'age' => 20],
    34 => ['id' => 34, 'name' => 'Trump', 'age' => 69]
];

Так же точно в качестве аналога ArrayHelper::map из Yii2 можно использовать этот же array_column

$users = [
    ['id' => 1, 'name' => 'Bob', 'age' => 30],
    ['id' => 12, 'name' => 'Alice', 'age' => 20],
    ['id' => 34, 'name' => 'Trump', 'age' => 69]
];

$users = array_column($users, 'id', 'name');
 
// В результате
$users = [
    1 => 'Bob',
    12 => 'Alice',
    34 => 'Trump'
];

Чтобы увидеть комментарии, нужно быть участником сообщества

Регистрация