PHP二維數(shù)組去重算法
需求
現(xiàn)在有下面一組二維數(shù)組:
array(8) { [0]=> array(2) { ["name"]=> string(4) "name" ["value"]=> string(6) "青葉" } [1]=> array(2) { ["name"]=> string(5) "phone" ["value"]=> string(11) "13812341234" } [2]=> array(2) { ["name"]=> string(12) "fileds_507[]" ["value"]=> string(12) "我是青葉" } [3]=> array(2) { ["name"]=> string(12) "fileds_508[]" ["value"]=> string(6) "合肥" } [4]=> array(2) { ["name"]=> string(12) "fileds_509[]" ["value"]=> string(3) "男" } [5]=> array(2) { ["name"]=> string(12) "fileds_510[]" ["value"]=> string(6) "足球" } [6]=> array(2) { ["name"]=> string(12) "fileds_510[]" ["value"]=> string(6) "棒球" } [7]=> array(2) { ["name"]=> string(12) "fileds_511[]" ["value"]=> string(16) "2016-12-15T11:15" } }
需要將處于第二維鍵名為name,其值相同的數(shù)組的value合并,形成一個(gè)新的數(shù)組。
比如上面代碼中的name為fileds_510的兩個(gè)二維數(shù)組,就應(yīng)該合并為一個(gè)值為足球,棒球的數(shù)組。
思路
提到數(shù)組,再PHP中我們首先想到了循環(huán),那么這里顯然比較適合使用for循環(huán)處理,與冒泡排序相似,一個(gè)個(gè)比較,最好處理。
代碼
代碼如下:
$public_info = 數(shù)組; for ($i=0;$i<count($public_info);$i++) { for ($j=$i+1;$j<count($public_info);$j++) { if ($public_info[$j]['name'] == $public_info[$i]['name']) { $public_info[$i]['value'] .= ',' . $public_info[$j]['value']; unset($public_info[$j]); } } }
執(zhí)行結(jié)果:
array(7) { [0]=> array(2) { ["name"]=> string(4) "name" ["value"]=> string(6) "青葉" } [1]=> array(2) { ["name"]=> string(5) "phone" ["value"]=> string(11) "13812341234" } [2]=> array(2) { ["name"]=> string(12) "fileds_507[]" ["value"]=> string(12) "我是青葉" } [3]=> array(2) { ["name"]=> string(12) "fileds_508[]" ["value"]=> string(6) "合肥" } [4]=> array(2) { ["name"]=> string(12) "fileds_509[]" ["value"]=> string(3) "男" } [5]=> array(2) { ["name"]=> string(12) "fileds_510[]" ["value"]=> string(13) "足球,棒球" } [7]=> array(2) { ["name"]=> string(12) "fileds_511[]" ["value"]=> string(16) "2016-12-15T11:15" } }
總結(jié)
需求已搞定,只要遇到數(shù)組,我們第一個(gè)想到的除了現(xiàn)成的PHP方法之外,就是循環(huán),不管是foreach還是for,上面例子是我項(xiàng)目處理的一個(gè)自定義表單編輯的小段過(guò)程,希望對(duì)大家思路有幫助。
- PHP中array_keys和array_unique函數(shù)源碼的分析
- php數(shù)組函數(shù)序列之a(chǎn)rray_unique() - 去除數(shù)組中重復(fù)的元素值
- php array_unique之后json_encode需要注意
- php下判斷數(shù)組中是否存在相同的值array_unique
- PHP數(shù)組去重的更快實(shí)現(xiàn)方式分析
- PHP編程快速實(shí)現(xiàn)數(shù)組去重的方法詳解
- php 數(shù)組元素快速去重
- php二維數(shù)組合并及去重復(fù)的方法
- PHP基于array_unique實(shí)現(xiàn)二維數(shù)組去重
相關(guān)文章
解決phpmyadmin 亂碼,支持gb2312和utf-8
解決phpmyadmin 亂碼,支持gb2312和utf-8...2006-11-11PHP PDO和消息隊(duì)列的個(gè)人理解與應(yīng)用實(shí)例分析
這篇文章主要介紹了PHP PDO和消息隊(duì)列的個(gè)人理解與應(yīng)用,結(jié)合實(shí)例形式分析了PHP pdo與消息隊(duì)列相關(guān)配置、使用方法及操作注意事項(xiàng),需要的朋友可以參考下2019-11-11PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之類與反射API詳解
這篇文章主要介紹了PHP面向?qū)ο蟪绦蛟O(shè)計(jì)之類與反射API,結(jié)合實(shí)例形式較為詳細(xì)的分析了類的驗(yàn)證、檢查、傳參及反射API等概念與操作技巧,需要的朋友可以參考下2016-12-12setcookie中Cannot modify header information-headers already s
本篇對(duì)setcookie中Cannot modify header information-headers already sent by錯(cuò)誤的解決方法進(jìn)行了詳細(xì)的分析介紹。需要的朋友參考下2013-05-05PHP向?yàn)g覽器輸出內(nèi)容的4個(gè)函數(shù)總結(jié)
這篇文章主要介紹了PHP向?yàn)g覽器輸出內(nèi)容的4個(gè)函數(shù)總結(jié),本文總結(jié)的就是print()、echo()、printf()、sprintf()這4個(gè)輸出函數(shù),需要的朋友可以參考下2014-11-11thinkphp5.1 框架鉤子和行為用法實(shí)例分析
這篇文章主要介紹了thinkphp5.1 框架鉤子和行為用法,結(jié)合實(shí)例形式分析了thinkphp5.1 框架鉤子和行為基本功能、定義、用法及操作注意事項(xiàng),需要的朋友可以參考下2020-05-05php使用fputcsv實(shí)現(xiàn)大數(shù)據(jù)的導(dǎo)出操作詳解
這篇文章主要介紹了php使用fputcsv實(shí)現(xiàn)大數(shù)據(jù)的導(dǎo)出操作,結(jié)合實(shí)例形式詳細(xì)分析了PHP百萬(wàn)級(jí)數(shù)據(jù)的插入以及使用fputcsv進(jìn)行大數(shù)據(jù)的導(dǎo)出相關(guān)操作技巧,需要的朋友可以參考下2020-02-02php實(shí)現(xiàn)三級(jí)級(jí)聯(lián)下拉框
這篇文章主要介紹了php實(shí)現(xiàn)三級(jí)級(jí)聯(lián)下拉框,上網(wǎng)翻找了許多三級(jí)級(jí)聯(lián)下拉框?qū)崿F(xiàn)的資料,下面分享給大家2016-04-04