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