php合並數組並保留鍵值的方法
答案:使用 + 連接兩個數組,替換array_merge()函數。
php合並數組,一般會使用array_merge方法。
array_merge — 合並一個或多個數組
array array_merge ( array $array1 [, array $... ] )
1
array_merge 將一個或多個數組的單元合並起來,一個數組中的值附加在前一個數組的後面,返回作為結果的數組。
如果輸入的數組中有相同的字符串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,後面的將不會覆蓋原來的值,而是附加到後面。
如果只給了一個數組並且該數組是數字索引的,則鍵名會以連續方式重新索引。
例子1,數組使用字符串鍵名,相同的鍵名會被後面的覆蓋
<?php
$arr1 = array(‘name‘=>‘fdipzone‘);
$arr2 = array(‘name‘=>‘terry‘);
$result = array_merge($arr1, $arr2);
print_r($result);
?>
輸出:
Array
(
[name] => terry
)
例子2,數組使用數字鍵名,鍵名相同不會覆蓋,且鍵名會重新索引
<?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
)
因工作需要,需要將調查問卷的兩部分選擇題的答案合並一起,每部分答案為數組(key=>value),key為題號,value為答案,且兩部分的題號不存在重復。
使用array_merge合並兩部分答案
<?php
$form_data1 = array(11=>‘A‘,12=>‘B‘,13=>‘C‘,14=>‘D‘);
$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)是數字,所以鍵名會重新索引,導致題號不能保留。
合並數組並保留鍵值的方法:
<?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
)
使用 “+” 運算符合並數組,可以保留數組的鍵值,如果合並的數組中含有相同的鍵值,後面的不會覆蓋前面的鍵值(前面的優先)。
---------------------
作者:傲雪星楓
來源:CSDN
原文:https://blog.csdn.net/fdipzone/article/details/73928965
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!
php合並數組並保留鍵值的方法