PHP 根據(jù)key 給二維數(shù)組分組
我們經(jīng)常拿到一個(gè)二維數(shù)組出來(lái),會(huì)發(fā)現(xiàn)結(jié)果和自己想要的有些偏差,可能需要根據(jù)二維數(shù)組里的某個(gè)字段對(duì)數(shù)組分組。
先來(lái)看以下數(shù)組,
Array ( [0] => Array ( [id] => 1 [wo_id] => 2 [evaluate_id] => 1 [type] => 分組1 [ctime] => 2016-12-02 11:39:34 ) [1] => Array ( [id] => 2 [wo_id] => 31 [evaluate_id] => 2 [type] => 分組1 [ctime] => 2016-12-12 11:39:50 ) [2] => Array ( [id] => 3 [wo_id] => 31 [evaluate_id] => 4 [type] => 分組2 [ctime] => 2016-12-02 11:40:01 ) [3] => Array ( [id] => 4 [wo_id] => 2 [evaluate_id] => 5 [type] => 分組2 [ctime] => 2016-12-07 10:21:40 ) [4] => Array ( [id] => 5 [wo_id] => 2 [evaluate_id] => 3 [type] => 分組2 [ctime] => 2016-12-07 10:21:51 ) [5] => Array ( [id] => 6 [wo_id] => 2 [evaluate_id] => 2 [type] => 分組3 [ctime] => 2016-12-07 10:21:56 ) [6] => Array ( [id] => 7 [wo_id] => 4 [evaluate_id] => 2 [type] => 分組3 [ctime] => 2016-12-07 10:22:10 ) )
這里是一個(gè)很典型的例子,如果我希望把 數(shù)組中的數(shù)據(jù) 根據(jù) type(分組) 分開(kāi)處理,如果不分組,可能循環(huán)上會(huì)非常冗余,所以有了下面的一個(gè)分組函數(shù):
public static function array_group_by($arr, $key) { $grouped = []; foreach ($arr as $value) { $grouped[$value[$key]][] = $value; } // Recursively build a nested grouping if more parameters are supplied // Each grouped array value is grouped according to the next sequential key if (func_num_args() > 2) { $args = func_get_args(); foreach ($grouped as $key => $value) { $parms = array_merge([$value], array_slice($args, 2, func_num_args())); $grouped[$key] = call_user_func_array('array_group_by', $parms); } } return $grouped; }
$arr : 二維數(shù)組
$key: 需要分組的key
得到的結(jié)果是:
Array ( [分組2] => Array ( [0] => Array ( [id] => 1 [wo_id] => 2 [evaluate_id] => 1 [ctime] => 2016-12-02 11:39:34 [type] => 分組2 ) [1] => Array ( [id] => 2 [wo_id] => 31 [evaluate_id] => 2 [ctime] => 2016-12-12 11:39:50 [type] => 分組2 ) [2] => Array ( [id] => 3 [wo_id] => 31 [evaluate_id] => 4 [ctime] => 2016-12-02 11:40:01 [type] => 分組2 ) ) [分組1] => Array ( [0] => Array ( [id] => 4 [wo_id] => 2 [evaluate_id] => 5 [ctime] => 2016-12-07 10:21:40 [type] => 分組1 ) [1] => Array ( [id] => 5 [wo_id] => 2 [evaluate_id] => 3 [ctime] => 2016-12-07 10:21:51 [type] => 分組1 ) ) )
以上所述是小編給大家介紹的PHP 根據(jù)key 給二維數(shù)組分組,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
- PHP根據(jù)key刪除數(shù)組中指定的元素
- PHP使用自定義key實(shí)現(xiàn)對(duì)數(shù)據(jù)加密解密的方法
- PHP實(shí)現(xiàn)向關(guān)聯(lián)數(shù)組指定的Key之前插入元素的方法
- PHP實(shí)現(xiàn)二維數(shù)組根據(jù)key進(jìn)行排序的方法
- php array_keys 返回?cái)?shù)組的鍵名
- php array_key_exists() 與 isset() 的區(qū)別
- PHP array_key_exists檢查鍵名或索引是否存在于數(shù)組中的實(shí)現(xiàn)方法
- PHP數(shù)組Key強(qiáng)制類(lèi)型轉(zhuǎn)換實(shí)現(xiàn)原理解析
相關(guān)文章
Laravel中數(shù)據(jù)遷移與數(shù)據(jù)填充的詳細(xì)步驟
這篇文章主要給大家介紹了關(guān)于Laravel中數(shù)據(jù)遷移與數(shù)據(jù)填充的相關(guān)資料,文中通過(guò)示例代碼給大家詳細(xì)介紹了實(shí)現(xiàn)的步驟,對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起看看吧。2017-12-12laravel 框架實(shí)現(xiàn)無(wú)限級(jí)分類(lèi)的方法示例
這篇文章主要介紹了laravel 框架實(shí)現(xiàn)無(wú)限級(jí)分類(lèi)的方法,結(jié)合實(shí)例形式分析了Laravel框架基于遞歸遍歷實(shí)現(xiàn)無(wú)限極分類(lèi)輸出的相關(guān)控制器及視圖操作技巧,需要的朋友可以參考下2019-10-10Discuz批量替換帖子內(nèi)容的方法(使用SQL更新數(shù)據(jù)庫(kù))
這篇文章主要介紹了Discuz批量替換帖子內(nèi)容的方法,使用SQL語(yǔ)句實(shí)現(xiàn),用REPLACE函數(shù)批量更新數(shù)據(jù)庫(kù),需要的朋友可以參考下2014-06-06基于 Swoole 的微信掃碼登錄功能實(shí)現(xiàn)代碼
隨著微信的普及,掃碼登錄方式越來(lái)越被現(xiàn)在的應(yīng)用所使用。它因?yàn)椴挥萌ビ涀∶艽a,只要有微信號(hào)即可方便快捷登錄.這里基于微信公眾平臺(tái)的帶參數(shù)臨時(shí)二維碼,并且結(jié)合 Swoole 的 WebSocket 服務(wù)實(shí)現(xiàn)掃碼登錄2018-01-01淺談laravel中的關(guān)聯(lián)查詢(xún)with的問(wèn)題
今天小編就為大家分享一篇淺談laravel中的關(guān)聯(lián)查詢(xún)with的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2019-10-10全新的PDO數(shù)據(jù)庫(kù)操作類(lèi)php版(僅適用Mysql)
在公司里也用了1年之久。如今公司規(guī)模變大了,產(chǎn)品也日益完善,曾經(jīng)的那個(gè)數(shù)據(jù)庫(kù)操作函數(shù)雖說(shuō)使用上沒(méi)出什么大問(wèn)題,但為了更顯專(zhuān)業(yè),花了1天時(shí)間重寫(xiě)了這個(gè),現(xiàn)在,它確實(shí)是個(gè)類(lèi)了2012-07-07thinkphp5框架結(jié)合mysql實(shí)現(xiàn)微信登錄和自定義分享鏈接與圖文功能示例
這篇文章主要介紹了thinkphp5框架結(jié)合mysql實(shí)現(xiàn)微信登錄和自定義分享鏈接與圖文功能,涉及基于curl的微信接口調(diào)用、數(shù)據(jù)庫(kù)操作等相關(guān)使用技巧,需要的朋友可以參考下2019-08-08