Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何显示这些特定于其包含的数据的记录?_Php_Sorting_Multidimensional Array - Fatal编程技术网

Php 如何显示这些特定于其包含的数据的记录?

Php 如何显示这些特定于其包含的数据的记录?,php,sorting,multidimensional-array,Php,Sorting,Multidimensional Array,我正在构建一个显示有关报告信息的页面。这些报告包含日期、名称和小说明 到目前为止,我已经能够按时间顺序从数据库中提取所有报告。Print_r()显示以下内容: Array ( [year] => 2024 [name] => 2024-05-25_601832524.pdf [date] => 2024-05-25 [description] => tr7 ) Array ( [year] => 2024 [name] => 2024-05-13_177847

我正在构建一个显示有关报告信息的页面。这些报告包含日期、名称和小说明

到目前为止,我已经能够按时间顺序从数据库中提取所有报告。Print_r()显示以下内容:

Array ( [year] => 2024 [name] => 2024-05-25_601832524.pdf [date] => 2024-05-25 [description] => tr7 )
Array ( [year] => 2024 [name] => 2024-05-13_1778477336.pdf [date] => 2024-05-13 [description] => tr6 )
Array ( [year] => 2024 [name] => 2024-05-22_1352917456.pdf [date] => 2024-05-22 [description] => tr7 )
Array ( [year] => 2022 [name] => 2022-02-19_1728056762.pdf [date] => 2022-02-19 [description] => tr3 )
Array ( [year] => 2022 [name] => 2022-05-19_1307066849.pdf [date] => 2022-05-19 [description] => tr5 )
基本上,我需要按年份(我将显示为标题)分离这些记录,然后遍历给定年份的每条记录,显示记录的数据,然后再转到下一年的标题和记录

不幸的是,无法确定每年的总记录数或记录数。由于这些值将定期变化,因此也不能更改唯一年份的数量。(向数据库添加新报告或删除旧报告时)

我没有发布我尝试过的解决方案,因为每次堆栈中下一条记录的[year]与上一条记录不同时,都会有2天的时间尝试实例化新的
$$year[]

编辑:为了澄清,我有一个2D数组,其中包含数据库中所有报告的记录。我需要遍历这个数组,并将每条记录排序到与每条记录的
[year]
值相对应的单独数组中

为了避免任何歧义,我举了一个例子:

根据上面显示的记录数组排序,我想对数组进行如下排序:

Years[]= ([0]=>2024[],[1]=> 2022[]);
2022[] =([0]=>([year] => 2022 [name] => 2022-02-19_1728056762.pdf [date] => 2022-02-19 [description] => tr3 ), [1]=>( [year] => 2022 [name] => 2022-05-19_1307066849.pdf [date] => 2022-05-19 [description] => tr5 ));

我将假设一些方面,因为没有提供代码示例

1) 您说过这些结果来自数据库,但在prin_r结果中我看到了多个独立数组,我假设print_r是在循环结构中调用的

2) 您希望按年操作这些记录,并希望保留阵列的所有数据/元素

这可以通过以下代码实现:

 $testData = [
        [
            'year' => 2024,
            'name' => '2024-05-25_601832524.pdf',
            'date' => '2024-05-25',
            'description' => 'tr7'
        ],
        [
            'year' => 2023,
            'name' => '2024-05-25_601832524.pdf',
            'date' => '2024-05-25',
            'description' => 'tr7'
        ],
        [
            'year' => 2023,
            'name' => '2024-05-25_601832524.pdf',
            'date' => '2024-05-25',
            'description' => 'tr7'
        ],
        [
            'year' => 2020,
            'name' => 'YoloSwagEasterEgg.pdf',
            'date' => '2024-05-25',
            'description' => 'tr7'
        ]
    ];

    $dataseperatedByYear = [];

    foreach ($testData as $record) {
        $dataseperatedByYear[$record['year']][] = $record;
    }

    print_r($dataseperatedByYear);
    die();

这不会将每个记录单独保存到嵌套数组中,而不是将具有相同年份的所有$record分组吗?它不会将所有记录分组[查看我提到的假设]是否希望每年只有一个名称/说明?否,我希望它存储数组x中包含年份x的所有记录,以及数组y中包含年份y的所有记录,依此类推。