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



этот вопрос уже есть ответ здесь:




  • PHP добавляет ассоциативный массив с литеральными ключами?

    4 ответы



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



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


когда я добавляю что-то к нему, как в $arr['key0'] = 'value0';, Я получить:



Array
(
[key1] => value1
[key2] => value2
[key0] => value0
)


как мне сделать, чтобы быть



Array
(
[key0] => value0
[key1] => value1
[key2] => value2
)


спасибо,

Ти

537   5  
PHP

5 ответов:

вы могли бы использовать Союз оператор:

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

или array_merge.

один из способов-с array_merge:

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

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

$array = array('key1' => 'value1', 'key2' => 'value2');
array_combine(array_unshift(array_keys($array),'key0'),array_unshift(array_values($array),'value0'))

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

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

    return $array;
}

Comments

    Ничего не найдено.