久久久久久久av_日韩在线中文_看一级毛片视频_日本精品二区_成人深夜福利视频_武道仙尊动漫在线观看

按一列對子數(shù)組進行分組,從組內(nèi)的其他列生成

Group subarrays by one column, make comma-separated values from other column within groups(按一列對子數(shù)組進行分組,從組內(nèi)的其他列生成逗號分隔的值)
本文介紹了按一列對子數(shù)組進行分組,從組內(nèi)的其他列生成逗號分隔的值的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述


我有一個看起來像這樣的數(shù)組:


I have a array that looks like this:

$array = [
    ["444", "0081"],
    ["449", "0081"],
    ["451", "0081"],
    ["455", "2100"],
    ["469", "2100"]
];

我需要分組為一個新數(shù)組,如下所示:

I need to group as a new array that looks like:

array (
  0 => 
  array (
    0 => '444,449,451',
    1 => '0081',
  ),
  1 => 
  array (
    0 => '455,469',
    1 => '2100',
  ),
)

我嘗試了很多腳本,但都沒有成功.

I'd tried many scripts, but with no success.

function _group_by($array, $key) {
    $return = array();
    foreach($array as $val) {
        $return[$val[$key]][] = $val;
    }
    return $return;
}
$newArray = _group_by($array, 1); // (NO SUCCESS)

推薦答案

應(yīng)該有更優(yōu)雅的解決方案,但我能想到的最簡單的就是這個.

There should be more elegant solutions, but simplest one I can think of would be this.

// The data you have pasted in the question
$data = []; 
$groups = [];

// Go through the entire array $data
foreach($data as $item){
    // If the key doesn't exist in the new array yet, add it       
    if(!array_key_exists($item[1], $groups)){
        $groups[$item[1]] = [];
    }

    // Add the value to the array
    $groups[$item[1]][] = $item[0];
}

// Create an array for the data with the structure you requested
$structured = [];
foreach($groups as $group => $values){
    // With the array built in the last loop, implode it with a comma
    // Also add the 'key' from the last array to it ($group)
    $structured[] = [implode(',', $values), $group];
}

我還沒有測試過這個,但類似的東西應(yīng)該可以解決問題.這只是通過給定的數(shù)組并以結(jié)構(gòu)化的方式收集所有條目(因此 $groups 變量將包含每個共享密鑰的組的數(shù)組條目,并且該密鑰將對應(yīng)于每個給定數(shù)組中的項目).從那里開始,它只是重組它以獲得您要求的格式.

I haven't tested this but something similar should do the trick. This simply goes through the given array and collects all entries in a structurized manner (so $groups variable will contain an array entry for each group sharing a key, and the key will correspond to the 2nd item in each item within the given array). From there it's just about restructuring it to get the format you have requested.

http://php.net/manual/en/control-structures.foreach.php

這篇關(guān)于按一列對子數(shù)組進行分組,從組內(nèi)的其他列生成逗號分隔的值的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網(wǎng)!

【網(wǎng)站聲明】本站部分內(nèi)容來源于互聯(lián)網(wǎng),旨在幫助大家更快的解決問題,如果有圖片或者內(nèi)容侵犯了您的權(quán)益,請聯(lián)系我們刪除處理,感謝您的支持!

相關(guān)文檔推薦

Joining 2 tables in SELECT(MYSQL/PHP)(在 SELECT(MYSQL/PHP) 中加入 2 個表)
How to make lt;option selected=quot;selectedquot;gt; set by MySQL and PHP?(如何使lt;option selected=“selectedgt;由 MySQL 和 PHP 設(shè)置?)
Auto populate a select box using an array in PHP(使用 PHP 中的數(shù)組自動填充選擇框)
PHP SQL SELECT where like search item with multiple words(PHP SQL SELECT where like search item with multiple words)
json_encode produce JSON_ERROR_UTF8 from MSSQL-SELECT(json_encode 從 MSSQL-SELECT 產(chǎn)生 JSON_ERROR_UTF8)
MySQL ORDER BY rand(), name ASC(MySQL ORDER BY rand(),名稱 ASC)
主站蜘蛛池模板: 一级片av | 久久草视频 | 一区二区蜜桃 | 欧美一级黄色片在线观看 | 亚洲日产精品 | 黄色一级大片在线免费看产 | 羞羞视频在线观看免费观看 | 最新av在线播放 | 中文字幕一级 | 91精品国产综合久久久久 | 久久精品亚洲精品国产欧美 | 精品一区二区在线看 | 亚洲高清视频在线观看 | 国产精品美女久久久久久免费 | 欧美日韩不卡 | 亚洲欧美国产精品一区二区 | 成人一级片在线观看 | 亚洲国产专区 | 在线免费国产 | 成人欧美一区二区三区白人 | 91在线精品一区二区 | 久久蜜桃资源一区二区老牛 | 国产黄色在线 | 蜜桃视频在线观看www社区 | 岛国在线免费观看 | 九九九久久国产免费 | 一级毛片在线播放 | 久久综合久久综合久久综合 | 国产精品久久久乱弄 | 日韩中文字幕一区 | 在线免费黄色小视频 | 夫妻午夜影院 | 精品免费国产一区二区三区 | 免费一区二区三区 | 九九热精品视频 | 色综合一区二区 | 综合另类 | 国产欧美在线播放 | 精品一区二区在线看 | 欧美一区二区三区在线观看 | 一区二区三区高清在线观看 |