深度解析PHP數組函數array_combine
阿新 • • 發佈:2017-05-30
影響 參數數組 clas () 我們 出現 發現 一點 函數
前些天寫了一篇關於array_merge的函數解析。
今天來看一個新的函數array_combine()
此函數一共有兩個參數,一個是合並後數組的鍵名,另一個為鍵值。
註意:合並後數組的鍵名放在第一個參數位上,鍵值放在第二個參數位上。
兩個參數都是不可缺省的。
兩個參數數組的元素個數一定要相同否則會報錯。
如果其中任意一個參數數組為空同樣也會報錯。
實踐出真知,讓代碼跑起來吧~
1.array_combine()的正確打開方式:
1 <?php 2 $key = array(‘boom‘ , ‘tom‘ , ‘jack‘); 3 $values = array(‘12‘ , ‘ok‘ , ‘1017‘); 4 $ret = array_combine($key , $values); 5 print_r($ret); 6 7 8 //run result 9 10 Array 11 ( 12 [boom] => 12 13 [tom] => ok 14 [jack] => 1017 15 )
2.如果鍵名參數數組的元素相同時會是什麽情況?
根據下面的例子我們會發現如果出現相同元素時,後一個會覆蓋掉前一個的值。
在開發過程中這一點尤為重要,因為它會造成數據結果不完整的情況出現。
1 <?php 2 $key = array(‘boom‘ , ‘tom‘ , ‘tom‘); 3 $values = array(‘12‘ , ‘ok‘ , ‘1017‘); 4 $ret = array_combine($key , $values); 5 print_r($ret); 6 7 8 //run result 9 Array 10 ( 11 [boom] => 12 12[tom] => 1017 13 )
根據上面的例子,我不經的想如果兩個參數數組的元素有屬於自己的鍵名會是什麽樣的情況呢?
3.當第一個參數數組(合並後數組的鍵名)有自定義鍵名時
根據下面的記過我們會發現和示例1中的結果一樣。
1 <?php 2 $key = array(‘a‘ => ‘boom‘ , ‘b‘ => ‘tom‘ , ‘c‘ => ‘jack‘); 3 $values = array(‘12‘ , ‘ok‘ , ‘1017‘); 4 $ret = array_combine($key , $values); 5 print_r($ret); 6 7 //run result 8 9 Array 10 ( 11 [boom] => 12 12 [tom] => ok 13 [jack] => 1017 14 )
4.當第二個參數數組(合並後數組的鍵值)有自定義鍵名時
我們發現和之前的情況是一樣的。
<?php $key = array(‘boom‘ , ‘tom‘ , ‘jack‘); $values = array(‘a‘ => ‘12‘ , ‘b‘ => ‘ok‘ , ‘c‘ => ‘1017‘); $ret = array_combine($key , $values); print_r($ret); //run result Array ( [boom] => 12 [tom] => ok [jack] => 1017 )
5.當兩個參數數組都擁有自定義鍵名時
<?php $key = array(‘1‘ => ‘boom‘ , ‘2‘ => ‘tom‘ , ‘3‘ => ‘jack‘); $values = array(‘a‘ => ‘12‘ , ‘b‘ => ‘ok‘ , ‘c‘ => ‘1017‘); $ret = array_combine($key , $values); print_r($ret); //run result Array ( [boom] => 12 [tom] => ok [jack] => 1017 )
綜上所述:array_combine()這個函數的結果只受參數數組鍵值的影響,與鍵名無關。
再者,如果出現參數數組元素相同時會發生覆蓋現象。
本文為茴香餃子博客的原創,歡迎轉載,轉載請註明出處
茴香餃子博客http://www.cnblogs.com/hxjz/
深度解析PHP數組函數array_combine