国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > PHP > 正文

PHP使用自定義方法實現數組合并示例

2020-03-22 18:05:48
字體:
來源:轉載
供稿:網友
本文實例講述了PHP使用自定義方法實現數組合并。分享給大家供大家參考,具體如下:在PHP中提供了強大的數組功能,對于數組的合并也提供了兩個方法:array_merge 和 array_merge_recursive但對于我們千變萬化的業務來說這些內置的方法并不完全能滿足我們的要求如我現在就遇到了數組合并這方面的問題,要求是這樣的:有兩個二維數組,這兩個數組大部分的健名是相同的,但有些健名可能并不存在于另一個數組中,現在需要我做的是將第二個數組中所有健值復制到第一個數組中(條件是:兩個數組某個健名的值是相同的情況下)顯然內置的兩個方法都不能滿足要求(兩個方法都只是將第二個數組中的健值復制到第一個對應的健上)$ar1 = array("color"= array("favorite"= "red","name"= "test"));$ar2 = array("color"= array("favorite"= "green","code"= "code"));print_r (array_merge ($ar1, $ar2));print_r(array_merge_recursive ($ar1, $ar2));可以看到array_merge只是將每個第二個數組的值復制到第一個數組上而已,顯然數組一favorite.name被數組二code給覆蓋了,而array_merge_recursive不會覆蓋掉相同的健名但一旦兩個數組健名相同則它會創建一個新數組并將兩個數組中值添加到新數組中以下是我自定義的實現方法: * @Author: HTL * @Description: 根據指定的健名將$ar2中的所有健值復制到$ar1對應的健值中 * @Return:$ar1 function array_more_merge($ar1,$ar2,$key_name){ !$ar1 || !is_array($ar1) || count($ar1) =0 || !$ar2 || !is_array($ar2) || count($ar2) =0 || !$key_name || strlen($key_name) =0) return $ar1; /*不能使用for進行循環,因為如果數組中的索引不是連續的則使用for可能無法正確的完成循環 如 $a = Array( 1 = Array("id" = 1 ) ,8 = Array("id" = 2 ) ,4 = Array("id" = 4 ) 該數組數為3所以只能找到[1],而[8][4]在循環中不會進行處理,因為$i =count($a)不成立 br */ for ($i=0; $i =count($a) ; $i++) { print_r($a[$i]); foreach ($ar1 as $i= $items) { foreach ($ar2 as $key= $item) { if($ar2[$key][$key_name]==$ar1[$i][$key_name]){ $keys = array_keys($ar2[$key]); foreach ($keys as $name) { $ar1[$i][$name] = $ar2[$key][$name]; return $ar1;$ar1 = '{"1":{"cost":"1","id":"1","total_price":"5"},"2":{"cost":"2","id":"2","total_price":"10"},"4":{"cost":"4","id":"4","total_price":"20"}}';$ar1 = json_decode($ar1,true);$ar2 = '{"1":{"cost":"1","id":"1","total_price":"5"},"2":{"cost":"20","id":"2","total_price":"100"},"4":{"cost":"40","id":"4","total_price":"200"}}';$ar2 = json_decode($ar2,true);echo "array_merge_recursive:";print_r(array_merge_recursive($ar1,$ar2));echo "array_merge:";print_r(array_merge($ar1,$ar2));echo "array_more_merge:";print_r($this- array_more_merge($ar1,$ar2,"id"));die();運行結果如下圖所示:更多關于PHP相關內容感興趣的讀者可查看本站專題:《PHP數組(Array)操作技巧大全》、《php排序算法總結》、《PHP常用遍歷算法與技巧總結》、《PHP數據結構與算法教程》、《php程序設計算法總結》、《PHP數學運算技巧總結》、《phphtml' target='_blank'>正則表達式用法總結》、《PHP運算與運算符用法總結》、《php字符串(string)用法總結》及《php常見數據庫操作技巧匯總》希望本文所述對大家PHP程序設計有所幫助。PHP教程

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 宁化县| 盐城市| 定结县| 山东| 资源县| 独山县| 广丰县| 吐鲁番市| 青河县| 天台县| 阳东县| 巴塘县| 都兰县| 康定县| 当阳市| 拉萨市| 六枝特区| 会同县| 义乌市| 阿克苏市| 永定县| 湘潭市| 高陵县| 青阳县| 无极县| 永泰县| 靖宇县| 桂阳县| 兖州市| 江油市| 治多县| 南岸区| 晴隆县| 红安县| 界首市| 喀什市| 高淳县| 新昌县| 延津县| 湟中县| 扶风县|