note 34301 deleted from function.array-merge by sniper

From: Date: Mon, 06 Oct 2003 22:54:30 +0000
Subject: note 34301 deleted from function.array-merge by sniper
References: 1  Groups: php.notes 
Request: Send a blank email to php-notes+get-57913@lists.php.net to get a copy of this message
Note Submitter: pulstar@mail.com ---- The script bellow will help you to better understand the behavior of some PHP array merging methods: <?php function show($arr) { foreach($arr as $akey=>$avalue) { echo $akey,"=",$avalue," &nbsp; "; } } $array1=array(); $array1['key1']="keep_me"; $array1['key2']="old_string"; $array1['key3']=1; $array1[1]="value1"; $array1[2]="value2"; echo "<li><b>\$array1:</b> ",show($array1); $array2=array(); $array2['key2']="new_string"; $array2['key3']=0; $array2[1]="new_value1"; echo "<li><b>\$array2:</b> ",show($array2); echo "<hr>"; $merged1 = $array1 + $array2; echo "<li><b>\$array1 + \$array2:</b> ",show($merged1); $merged2 = $array2 + $array1; echo "<li><b>\$array2 + \$array1:</b> ",show($merged2); echo "<li><b>array_merge(\$array1,\$array2):</b> ",show(array_merge($array1,array2)); echo "<li><b>array_merge(\$array2,\$array1):</b> ",show(array_merge($array2,array1)); echo "<li><b>array_merge_recursive(\$array1,\$array2):</b> ",show(array_merge_recursive($array1,array2)); echo "<li><b>array_merge_recursive(\$array2,\$array1):</b> ",show(array_merge_recursive($array2,array1)); ?> It will produce the following result: $array1: key1=keep_me key2=old_string key3=1 1=value1 2=value2 $array2: key2=new_string key3=0 1=new_value1 --------------------------------------------------- $array1 + $array2: key1=keep_me key2=old_string key3=1 1=value1 2=value2 $array2 + $array1: key2=new_string key3=0 1=new_value1 key1=keep_me 2=value2 array_merge($array1,$array2): key1=keep_me key2=old_string key3=1 0=value1 1=value2 2=array2 array_merge($array2,$array1): key2=new_string key3=0 0=new_value1 1=array1 array_merge_recursive($array1,$array2): key1=keep_me key2=old_string key3=1 0=value1 1=value2 2=array2 array_merge_recursive($array2,$array1): key2=new_string key3=0 0=new_value1 1=array1 If you want to replace all common keys with the new values from $array2 (including numeric keys), the method "$array2 + $array1" is the best choice. Regards, Edemilson Lima

« previous php.notes (#57913) next »