溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在php中合并數(shù)組并保留鍵值

發(fā)布時間:2021-03-19 16:57:55 來源:億速云 閱讀:341 作者:Leah 欄目:開發(fā)技術

怎么在php中合并數(shù)組并保留鍵值?針對這個問題,這篇文章詳細介紹了相對應的分析和解答,希望可以幫助更多想解決這個問題的小伙伴找到更簡單易行的方法。

php合并數(shù)組,一般會使用array_merge方法。

array_merge — 合并一個或多個數(shù)組

array array_merge ( array $array1 [, array $... ] )

array_merge 將一個或多個數(shù)組的單元合并起來,一個數(shù)組中的值附加在前一個數(shù)組的后面,返回作為結果的數(shù)組。

如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個值。然而,如果數(shù)組包含數(shù)字鍵名,后面的將不會覆蓋原來的值,而是附加到后面。

如果只給了一個數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會以連續(xù)方式重新索引。

例子1,數(shù)組使用字符串鍵名,相同的鍵名會被后面的覆蓋

<?php
$arr1 = array('name'=>'fdipzone');
$arr2 = array('name'=>'terry');
$result = array_merge($arr1, $arr2);
print_r($result);
?>

輸出:

Array
(
 [name] => terry
)

例子2,數(shù)組使用數(shù)字鍵名,鍵名相同不會覆蓋,且鍵名會重新索引

<?php
$arr1 = array(0=>'fdipzone',1=>'terry');
$arr2 = array(0=>'php',1=>'python');
$result = array_merge($arr1, $arr2);
print_r($result);
?>

輸出:

Array
(
 [0] => fdipzone
 [1] => terry
 [2] => php
 [3] => python
)

因工作需要,需要將調(diào)查問卷的兩部分選擇題的答案合并一起,每部分答案為數(shù)組(key=>value),key為題號,value為答案,且兩部分的題號不存在重復。

使用array_merge合并兩部分答案

<?php
$form_data1 = array(11=>'A',12=>'B',13=>'C',14=>'D');
$form_data2 = array(25=>'B',26=>'A',27=>'D',28=>'C');
$result = array_merge($form_data1, $form_data2);
print_r($result);
?>

輸出:

Array
(
 [0] => A
 [1] => B
 [2] => C
 [3] => D
 [4] => B
 [5] => A
 [6] => D
 [7] => C
)

使用array_merge合并,因為題號(key)是數(shù)字,所以鍵名會重新索引,導致題號不能保留。

合并數(shù)組并保留鍵值的方法:

<?php
$form_data1 = array(11=>'A',12=>'B',13=>'C',14=>'D');
$form_data2 = array(25=>'B',26=>'A',27=>'D',28=>'C');
$result = $form_data1 + $form_data2;
print_r($result);
?>

輸出:

Array
(
 [11] => A
 [12] => B
 [13] => C
 [14] => D
 [25] => B
 [26] => A
 [27] => D
 [28] => C
)

關于怎么在php中合并數(shù)組并保留鍵值問題的解答就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,如果你還有很多疑惑沒有解開,可以關注億速云行業(yè)資訊頻道了解更多相關知識。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內(nèi)容。

AI