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

php

78077 просмотра

5 ответа

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

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

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

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

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

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

Спасибо,
Tee

Автор: teepusink Источник Размещён: 13.11.2019 11:37

Ответы (5)


222 плюса

Решение

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

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

или array_merge.

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

21 плюса

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

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

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

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

8 плюса

$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

3 плюса

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

2 плюса

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

Автор: James C Размещён: 25.04.2011 10:07
Вопросы из категории :
32x32