亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

如何合併數(shù)組並保留鍵?
P粉081360775
P粉081360775 2023-10-17 11:01:01
0
2
715

我有兩個陣列:

$array1 = array('a' => 1, 'b' => 2, 'c' => 3);
$array2 = array('d' => 4, 'e' => 5, 'f' => 6, 'a' => 'new value', '123' => 456);

我想合併它們並保留鍵和順序而不是重新索引! !

怎麼變成這樣?

Array
(
    [a] => new value
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
    [f] => 6
    [123] => 456
)

我嘗試 array_merge() 但它不會保留鍵:

print_r(array_merge($array1, $array2));

Array
(
    [a] => 'new value'
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
    [f] => 6
    [0] => 456
)

我嘗試使用聯(lián)合運算符,但它不會覆寫該元素:

print_r($array1 + $array2);

Array
(
    [a] => 1   <-- not overwriting
    [b] => 2
    [c] => 3
    [d] => 4
    [e] => 5
    [f] => 6
    [123] => 456
)

我嘗試交換位置,但順序錯誤,不是我的需要:

print_r($array2 + $array1);

Array
(
    [d] => 4
    [e] => 5
    [f] => 6
    [a] => new value 
    [123] => 456
    [b] => 2
    [c] => 3
)

我不想使用循環(huán),有沒有辦法獲得高效能?

#
P粉081360775
P粉081360775

全部回覆(2)
P粉593536104

假設我們有 3 個數(shù)組,如下所示。

$a = array(0=>['label'=>'Monday','is_open'=>1],1=>['label'=>'Tuesday','is_open'=>0]);

$b = array(0=>['open_time'=>'10:00'],1=>['open_time'=>'12:00']); 

$c = array(0=>['close_time'=>'18:00'],1=>['close_time'=>'22:00']);

現(xiàn)在,如果您想合併所有這些數(shù)組,並希望最終的數(shù)組包含鍵 0 in 0 和 1 in 1 鍵下的所有數(shù)組數(shù)據(jù),依此類推。

然後你需要使用array_replace_recursive PHP函數(shù),如下。

$final_arr = array_replace_recursive($a, $b , $c);

結(jié)果如下。

Array
(
    [0] => Array
        (
            [label] => Monday
            [is_open] => 1
            [open_time] => 10:00
            [close_time] => 18:00
        )

    [1] => Array
        (
            [label] => Tuesday
            [is_open] => 0
            [open_time] => 12:00
            [close_time] => 22:00
        )

)

希望上述解決方案能夠最適合您的要求! !

P粉729436537

您正在尋找array_replace()

$array1 = array('a' => 1, 'b' => 2, 'c' => 3);
$array2 = array('d' => 4, 'e' => 5, 'f' => 6, 'a' => 'new value', '123' => 456);
print_r(array_replace($array1, $array2));

自 PHP 5.3 起可用。

更新

您也可以使用聯(lián)合陣列運算子;它適用於舊版本,實際上也可能更快:

print_r($array2 + $array1);
最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板