首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >PHP -按键值对多维数组进行分组

PHP -按键值对多维数组进行分组
EN

Stack Overflow用户
提问于 2013-07-23 12:25:53
回答 4查看 2.3K关注 0票数 3

我现在有这样的代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$files = glob('songs/*.{mp3}', GLOB_BRACE);
$dateUploaded = array();

foreach($files as $file){
    $path_parts = pathinfo($file);
    $dateUploaded[] = array("Date Uploaded" => date ("jS \of F,  Y", filemtime($file)), "File Name" => $path_parts['filename']);
}
print_r($dateUploaded);

哪种输出

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Array (
    [0] => Array (
        [Date Uploaded] => 26th of February, 2013
        [File Name] => All That Glitters - This Sound (Felix Cartal Remix)
    )
    [1] => Array (
        [Date Uploaded] => 26th of February, 2013
        [File Name] => Bertie Blackman - Hide and Seek
    )
    [2] => Array (
        [Date Uploaded] => 18th of December, 2012
        [File Name] => Birds of Tokyo - This Fire
    )
    [3] => Array (
        [Date Uploaded] => 18th of December, 2012
        [File Name] => Bloc Party - Truth
    )
    [4] => Array (
        [Date Uploaded] => 18th of December, 2012
        [File Name] => C2C - Down the Road
    )
    [5] => Array (
        [Date Uploaded] => 18th of December, 2012
        [File Name] => Chance Waters - Young and Dumb feat Bertie Blackman
    )
    [6] => Array (
        [Date Uploaded] => 26th of February, 2013
        [File Name] => City Calm Down - Sense of Self
    )
    [7] => Array (
        [Date Uploaded] => 18th of December, 2012
        [File Name] => Clubfeet - Heartbreak
    )
    [8] => Array (
        [Date Uploaded] => 26th of February, 2013
        [File Name] => Cosmo Jarvis - My Own Thing
    )
    [9] => Array (
        [Date Uploaded] => 6th of June, 2013
        [File Name] => Courtney Barnett - History Eraser
    )
    [10] => Array (
        [Date Uploaded] => 6th of June, 2013
        [File Name] => Delphic - Baiya
    )
)

我正在尝试做的是通过“上传日期”键对这些进行分组。所以我有一个类似这样的东西:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
Array (
    [26th of February, 2013] => Array (
        [0] All That Glitters - This Sound (Felix Cartal Remix)
        [1] Bertie Blackman - Hide and Seek
        [2] City Calm Down - Sense of Self
        [3] Cosmo Jarvis - My Own Thing
    )
    [18th of December, 2012] => Array (
        [0] Birds of Tokyo - This Fire
        [1] Bloc Party - Truth
        [2] C2C - Down the Road
        [3] Chance Waters - Young and Dumb feat Bertie Blackman
        [4] Clubfeet - Heartbreak
    )
    [6th of June, 2013] => Array (
        [0] Courtney Barnett - History Eraser
        [1] Delphic - Baiya
    )
)

有没有人能帮帮我,告诉我怎么做?

我正在努力实现的主要目标是能够只是将文件放在我的服务器上的文件夹中,并有我的脚本打印出来,在<ul>的形式,歌曲按上传日期分组。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<ul>
    Last Updated: 26th of February, 2013
    <li>All That Glitters - This Sound (Felix Cartal Remix)</li>
    <li>Bertie Blackman - Hide and Seek</li>
    <li>City Calm Down - Sense of Self</li>
    <li>Cosmo Jarvis - My Own Thing</li>
</ul>
<ul>
    Last Updated: 18th of December, 2012
    <li>Birds of Tokyo - This Fire</li>
    <li>Bloc Party - Truth</li>
    <li>C2C - Down the Road</li>
    <li>Chance Waters - Young and Dumb feat Bertie Blackman</li>
    <li>Clubfeet - Heartbreak</li>
</ul>
<ul>
    Last Updated: 6th of June, 2013
    <li>Courtney Barnett - History Eraser</li>
    <li>Delphic - Baiya</li>
</ul>

感谢每一个试图帮助我解决这个问题的人。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-23 12:31:15

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
foreach($files as $file){
    $path_parts = pathinfo($file);
    $date = date ("jS \of F,  Y", filemtime($file));
    if(isset($dateUploaded[$date])) {
          $dateUploaded[$date][] = $path_parts['filename'];
    } else {
          $dateUploaded[$date] = array($path_parts['filename']);
    }
}
票数 7
EN

Stack Overflow用户

发布于 2013-07-23 12:35:08

分组

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$groups = array();
foreach ($dateUploaded as $du) {
  $key = $du['Date Uploaded'];
  if (!isset($groups[$key])) $groups[$key] = array();
  $groups[$key][] = $du['File Name'];
}

输出为列表

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ret = '';
foreach ($groups as $key=>$list)
  $ret.="<ul>\n".$key."<li>".implode("</li>\n<li>",$list)."</li></ul>";
票数 0
EN

Stack Overflow用户

发布于 2013-07-23 12:36:23

快速代码:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$arr = array();
foreach ($files as $file) {
  $date = $file['Date Uploaded'];
  $name = $file['File Name'];

  $arr[$date][] = $name;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17810142

复制
相关文章
PHP按特定key进行多维数组排序
实际上array_multisort 是PHP内置的方法,官方有说明: PHP - array_multisort
雪碧君
2023/02/15
2.7K0
Python对字典根据键值分组进行排序
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/119530.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/11
4.5K0
PHP如何对二维数组(多维数组)进排序
在 PHP 中,可以使用函数 array_multisort() 来对二维数组进行排序处理。该函数可以按照指定的键或值对数组进行排序。
兔云小新LM
2023/09/12
5360
PHP如何对二维数组(多维数组)进排序
JS/TS 对数组中的对象按相同值进行分组
举个例子:对以下数组按 lastName 的值进行分组分类 const listData = [ { firstName: "Rick", lastName: "Sanchez", size: 18 }, { firstName: "Morty", lastName: "Smith", size: 6 }, { firstName: "Jerry", lastName: "Smith", size: 3 }, { firstName: "Beth", lastName: "Smith", s
Leophen
2020/10/09
8.2K0
JS/TS 对数组中的对象按相同值进行分组
PHP 如何从关联数组移除指定的键值对
如果要移除多个键值对,就要调用多次的 unset 函数,所以把他合并成一个函数 wpjam_array_excerpt:
Denis
2023/04/14
2.1K0
PHP的多维数组排序
熟悉PHP的小伙伴都知道有很多内置函数可以对数组进行排序操作或者自定义一些排序方法(冒泡)等等。
用户2475223
2019/12/17
3.7K0
php implode函数 多维数组
作者:matrix 被围观: 3,924 次 发布时间:2015-03-19 分类:PHP | 8 条评论 »
HHTjim 部落格
2022/09/26
2.4K0
java 对多维数组的工具类(比如遍历多维数组工具类)
目录 1 遍历int类型二维数组 2 使用流遍历int 类型二维数组 3 遍历 float 类型二维数组 4 遍历 double 类型二维数组 5 遍历 int 类型 3维数据 6 遍历 Float 类型 3维数据 1 遍历int类型二维数组 public static void printErIntArray(int[][] matrix){ for (int i = 0; i < matrix.length; i++) { //this equals to the row in our
一写代码就开心
2022/06/28
2K0
php 多维数组去空值字段/多维数组改键名称
我有这样一个需求,下面我以json格式展示便于查看结构。我需要删除多维数组中的空字段/指定字段,并且修改某些字段的键名称。 [ { "_id":1, "name":"笔记本整机", "tag":"", "list":[ { "_id":19, "name":"笔记本", "tag":"",
友儿
2022/09/11
3.1K0
java键值对_Java 读写键值对
public static void main(String[] args) throws IOException {
全栈程序员站长
2022/07/23
2.1K0
3分钟短文 | PHP 多维数组按值排序,别抓狂看这里
如果你经常写 PHP,要说你没用过数组,那简直是不可能的。PHP 一个数组可以走遍大街小巷,行遍万水千山。数组相关的函数也马虎不得,如影随形。
程序员小助手
2020/07/02
1.3K0
PHP 如何从关联数组中移除并返回指定的键值对
该功能已经整合到 WPJAM Basic 插件中,并已免费提供下载,简单勾选或者设置下即可开启!
Denis
2023/04/14
5.1K0
使用asort函数对PHP数组进行升序排序
PHP是一门功能强大的语言,数组是PHP中十分常用的数据结构之一。在实际开发中,经常需要对数组进行排序。PHP提供了多个函数用于对数组进行排序,其中asort函数可以实现对数组进行升序排序。
很酷的站长
2023/08/25
4670
使用asort函数对PHP数组进行升序排序
PHP:如何合并多维数组中的子数组
如何把多维数组中的每个子数组合并成一个新数组 $result,有两个方法: $merged = call_user_func_array('array_merge', $result); 如果是 PHP 版本在 5.6 以上,可以使用 ... 操作符: $merged = array_merge(...$result); ----
Denis
2023/04/15
5.5K0
根据分组依据对Java集合元素进行分组
业务背景:在项目中有个“分账”功能,就是支付的钱一部分要根据不同商品的分账金额自动分给平台提供商。
张张
2019/12/25
2.4K0
Qt中QMap键值对基本用法(键值对)
T1为键值对中的键key,T2为键值对中的值。通过键值对中的键可以搜索到值。一般来说,键值对中的键是唯一的,不可重复,而值没有要求,可以重复。并且QMap具有自动排序功能,对输入的键进行排序。
全栈程序员站长
2022/09/02
3.6K0
PHP如何删除关联数组中键值
1、使用unset()函数可以用于取消设置关联数组中的键及其值。 $arr = array( "1" => "加", "2" => "减", "3" => "乘", "4" => "除" ); // 关联数组中删除键1及其值 unset($arr['1']); // 显示数组元素 var_dump($arr); 2、使用array_diff_key()函数用于获取一个或多个数组之间的差集。 此函数比较一个或多个数组之间的键并返回它们之间的差集。 / $arr = arr
用户7353560
2021/11/07
1.8K0
Java对List列表进行分组处理(对List列表固定分组/对List列表平均分组)
将一组数据平均分成n组 即:数据分组数固定为N,每组数据个数不定,每组个数由List列表数据总长度决定 /** * 将一组数据平均分成n组 * * @param source 要分组的数据源 * @param n 平均分成n组 * @param <T> * @return */ public static <T> List<List<T>> averageAssign(List<T> source, int n) { List<List<T>> result = new Ar
目的地-Destination
2023/03/06
3.5K0
点击加载更多

相似问题

PHP如何按关联键值对多维数组进行分组

329

按特定键值对多维数组进行排序

212

按php中的值对多维数组进行分组

21

在PHP中按键值和和值对多维数组进行分组

40

按键值对PHP数组进行分组

36
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文