摘要:一寫在前面目前工作中接觸到的數(shù)組合并方式主要有三種操作符它們的區(qū)別主要體現(xiàn)在對于相同鍵名數(shù)字鍵名字符串鍵名的處理方式,下面本文將以兩個實際例子來體現(xiàn)二相同字符串鍵對于重復(fù)的字符串鍵,后,后面數(shù)組的鍵值會覆蓋前面的對于重復(fù)的字符串鍵,操作后,
一、寫在前面
目前工作中接觸到的PHP數(shù)組合并方式主要有三種:
1、+操作符
2、array_merge()
3、array_merge_recursive()
它們的區(qū)別主要體現(xiàn)在對于相同鍵名(數(shù)字鍵名、字符串鍵名)的處理方式,下面本文將以兩個實際例子來體現(xiàn)~
二、相同字符串鍵1, "second_key" => 1, "third_key" => 1, ]; $arrSecond = [ "first_key" => 2, "second_key" => 2, "fourth_key" => 2, ]; //對于重復(fù)的字符串鍵,array_merge后,后面數(shù)組的鍵值會覆蓋前面的 echo sprintf(" array_merge result: %s", print_r(array_merge($arrFirst, $arrSecond), true)); //對于重復(fù)的字符串鍵,+操作后,前面數(shù)組的鍵值會覆蓋后面的 echo sprintf(" array + result: %s", print_r($arrFirst + $arrSecond, true)); //對于重復(fù)的字符串鍵,array_merge_recursive后,相同鍵名的鍵值會被合并到同一數(shù)組中(會遞歸) echo sprintf(" array_merge_recursive result: %s", print_r(array_merge_recursive($arrFirst, $arrSecond), true));
運行結(jié)果:
"first", 222 => "first", "first" //會指定默認的數(shù)字鍵223 ]; $arrSecond = [ 111 => "second", 333 => "second", "second" //會指定默認的數(shù)字鍵334 ]; //對于重復(fù)的數(shù)字鍵,+操作后,前面數(shù)組的鍵值會覆蓋后面的,保留之前數(shù)字鍵 echo sprintf(" array + result: %s", print_r($arrFirst + $arrSecond, true)); //對于重復(fù)的數(shù)字鍵,array_merge后,重排數(shù)字鍵,不會覆蓋 echo sprintf(" array_merge result: %s", print_r(array_merge($arrFirst, $arrSecond), true)); //對于重復(fù)的數(shù)字鍵,array_merge_recursive后,重排數(shù)字鍵,不會覆蓋 echo sprintf(" array_merge_recursive result: %s", print_r(array_merge_recursive($arrFirst, $arrSecond), true));
運行結(jié)果:
四、附:PHP數(shù)組基礎(chǔ)概述一、KEY
1、Key只能為Integer或String,可同時存在
2、包含合法整型值的字符串Key會被轉(zhuǎn)化為整型存儲,如:"6"的Key會被轉(zhuǎn)化為6存儲
3、布爾值Key會被轉(zhuǎn)化為整型存儲,true會被轉(zhuǎn)化為1存儲,false會被轉(zhuǎn)化為0存儲
4、Null會被轉(zhuǎn)化為空串存儲
5、如果多個Key值被轉(zhuǎn)化后為相同的值,則只使用最后一個,前面的被覆蓋,如:一個數(shù)組中依次定義了"1"、true、1的key,則最后只會存儲key為1的value,之前的值都被覆蓋
6、如果未指定Key,則會被自動設(shè)定為之前用過的最大的整型Key+1,最小為0二、VALUE
1、可以為PHP任意類型(字符串、整形、浮點型、布爾型、對象、數(shù)組、NULL、資源類型)三、其他類型轉(zhuǎn)化為數(shù)組類型
1、Integer、String、Float、Boolean、Resource類型轉(zhuǎn)化為數(shù)組類型時,會被自動分配Key為0,Value為其原值
2、Object類型轉(zhuǎn)化為數(shù)組類型時,成員變量名會作為數(shù)組Key,私有屬性的Key會加上類名前綴,保護屬性的Key會加上"*"前綴
3、Null會被轉(zhuǎn)化為空數(shù)組四、foreach
1、兩種形式,foreach($arr as $key => $value)與foreach($arr as
$value),其中$value是值傳遞,使用&$value是引用傳遞
2、遍歷依賴數(shù)組內(nèi)部指針
3、遍歷結(jié)束后,$value會被保留,為防止在多次foreach時出現(xiàn)問題,可以在一次foreach后unset($value)或使用不同的變量
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/30775.html
摘要:本文是響應(yīng)式編程第一章響應(yīng)式這篇文章的學(xué)習(xí)筆記。通過代碼對比可以發(fā)現(xiàn),在響應(yīng)式編程中,我們不再用對象的概念來對現(xiàn)實世界進行建模,而是使用流的思想對信息進行拆分和聚合。 本文是Rxjs 響應(yīng)式編程-第一章:響應(yīng)式這篇文章的學(xué)習(xí)筆記。示例代碼地址:【示例代碼】 更多文章:【《大史住在大前端》博文集目錄】 showImg(https://segmentfault.com/img/bVbuE...
摘要:一列表標簽列表標簽分為三種。二表格標簽表格標簽用表示。單元格和單元格之間的距離外邊距,像素為單位。例如表示當前單元格在水平方向上要占據(jù)兩個單元格的位置。輸入標簽文本框輸入標簽文本框用于接收用戶輸入。一 列表標簽 列表標簽分為三種。 1、無序列表,無序列表中的每一項是 英文單詞解釋如下: a.ul:unordered list,無序列表的意思。 b.l...
摘要:可以看到,方法,簡潔高效,且能實現(xiàn)多個數(shù)組合并并且能夠?qū)崿F(xiàn)深度嵌套注意最后還是使用了哦,換成是不可以的。多個數(shù)組合并原生的方法可以簡單實現(xiàn)多個數(shù)組合并,比如會返回至于其他方法,應(yīng)該只是一個接口的問題,可以像下面這樣實現(xiàn)。 網(wǎng)易前端面試的時候,面試官問我有幾種數(shù)組合并的方法,當時第一反應(yīng)就是concat,但是面試官說幾種,我尋思著原生js方法好像也只有concat呀,就說不改變原數(shù)組的話...
摘要:運行時環(huán)境,又叫構(gòu)建包上提供的一系列運行時環(huán)境包括圖中顯示的七種命名構(gòu)建包,外加已批準用于的其他任何構(gòu)建包。開發(fā)運營服務(wù)上的八種開發(fā)運營服務(wù)包括來自的五種服務(wù)和來自第三方的三種服務(wù)。 去年夏天我測評了Cloud Foundry PaaS(平臺即服務(wù)),當時著眼于Pivotal和ActiveState這兩種解決開源方案。這回測試時,我將關(guān)注IBM Bluemix,這是在SoftLayer上托管...
摘要:以下正文的部分內(nèi)容來自程序員面試筆試寶典書籍,如果轉(zhuǎn)載請保留出處一什么是是一個開源免費高性能的分布式對象緩存系統(tǒng),它基于一個存儲鍵值對的來存儲數(shù)據(jù)到內(nèi)存中。預(yù)告面試??純?nèi)容之和將于本周三更新。 你好,是我琉憶。繼上周(2019.2-11至2-15)發(fā)布的PHP面試常考內(nèi)容之面向?qū)ο髮n}后,發(fā)布的第二個專題,感謝你的閱讀。本周(2019.2-18至2-22)的文章內(nèi)容點為以下幾點,更新時...
閱讀 931·2021-11-08 13:22
閱讀 2856·2021-09-29 09:45
閱讀 2835·2021-09-09 11:52
閱讀 2269·2019-08-30 13:20
閱讀 3751·2019-08-29 13:28
閱讀 1372·2019-08-29 12:32
閱讀 2732·2019-08-29 11:10
閱讀 1653·2019-08-26 13:34