Как присоединить атрибут к каждому элементу в массиве PHP

71
10

Предположим, у нас есть массив с одним атрибутом для каждого элемента:

Array ( [0] => A [1] => B [2] => C [3] => D ) 

Можно ли добавить один и тот же равномерный атрибут к каждому из элементов, чтобы получить новый двумерный массив? Т.е. для атрибута X:

Array ( [0] => Array ( [0] => A [1] => X)
[1] => Array ( [0] => B [1] => X)
[2] => Array ( [0] => C [1] => X) )

Я знаю, я мог бы сделать это, используя для каждого цикла, но есть ли еще более элегантное решение (например, array_combine)?

(Для назначения разных значений обратитесь к: Назначению значения для каждого элемента массива PHP)

спросил(а) 2011-12-11T17:23:00+04:00 8 лет, 10 месяцев назад
1
Решение
81

Вы можете использовать array_map:

$array = array ( 'A', 'B', 'C', 'D' );
$array = array_map(function($el) {
return array($el, 'X');
}, $array);

ответил(а) 2011-12-11T17:30:00+04:00 8 лет, 10 месяцев назад
58

array_walk мог бы работать.


$arr = array('A', 'B', 'C', 'D');
array_walk($arr, 'arrFunc');
function arrFunc(&$item, $key)
{
$item = array($item, 'X');
}

ответил(а) 2011-12-11T17:32:00+04:00 8 лет, 10 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема