Вопрос:

PHP - добавить элемент в начало ассоциативного массива

php

78077 просмотра

5 ответа

11108 Репутация автора

Как я могу добавить элемент в начало ассоциативного массива? Например, скажем, у меня есть такой массив:

$arr = array('key1' => 'value1', 'key2' => 'value2');

Когда я добавляю что-то к этому как в $arr['key0'] = 'value0';, я получаю:

массив
(
    [key1] => значение1
    [key2] => значение2
    [key0] => значение0
)

Как я могу сделать это, чтобы быть

массив
(
    [key0] => значение0
    [key1] => значение1
    [key2] => значение2
)

Спасибо,
Tee

Автор: teepusink Источник Размещён: 25.04.2011 10:01

Ответы (5)


21 плюса

61569 Репутация автора

Один из способов заключается в array_merge:

<?php
$arr = array('key1' => 'value1', 'key2' => 'value2');
$arr = array_merge(array('key0' => 'value0'), $arr);

В зависимости от обстоятельств вы также можете использовать ksort.

Автор: outis Размещён: 25.04.2011 10:04

222 плюса

599715 Репутация автора

Решение

Вы можете использовать оператор объединения :

$arr1 = array('key0' => 'value0') + $arr1;

или array_merge.

Автор: Felix Kling Размещён: 25.04.2011 10:04

8 плюса

186367 Репутация автора

$array = array('key1' => 'value1', 'key2' => 'value2');
array_combine(array_unshift(array_keys($array),'key0'),array_unshift(array_values($array),'value0'))
Автор: Mark Baker Размещён: 25.04.2011 10:06

2 плюса

12765 Репутация автора

Если вы не хотите объединять массивы, вы можете просто использовать ksort()их перед выполнением итерации.

Автор: James C Размещён: 25.04.2011 10:07

3 плюса

36 Репутация автора

function unshift( array & $array, $key, $val)
{
    $array = array_reverse($array, 1);
    $array[$key] = $val;
    $array = array_reverse($array, 1);

    return $array;
}
Автор: Tomek Размещён: 10.04.2013 05:50
Вопросы из категории :
32x32