1

我有一个我想要发生的事情的逻辑结构或想法,我希望它使用数组在 PHP 中编码,这是场景:

10 次循环/每月出现次数

月 => 重复

jan => 2
mar => 1
sep => 5
dec => 2

如上所示,我有一个发生 10 次的循环,在该循环计数中记录了 4 个不同的月份,并且每个特定月份都有可能重复多次,例如月份 (sep) 已重复 5 次。这个想法与一个人记录他/她旅行的月份以及他/她在该月内旅行的次数(从 10 次记录的旅行中)的示例相同。知道如何使用数组在 PHP 中构建它吗?非常感谢任何建议或答案!

好的,这是我想要发生的事情,我从数据库中提取月份的记录,然后我想显示从数据库中提取的月份以及重复的次数,例如显示如下:

Jan (2)
Sep (5)

我希望它是动态的,如果数据库记录中不存在某个月份,则不会显示它。

4

1 回答 1

3

我认为他正在尝试进行基本的频率分析。假设您以某种方式将日期输入数组,您可以继续使用strtotime ()、date () 函数生成键,然后解析它们。

首先,创建一些虚拟数据:

// dummy data; unsure of the format, so going with time()-like structure
$dates = array();
for( $i = 0; $i < 10; $i++ ) {
    $dates[] = strtotime(sprintf("%s-%s-2012", rand(1,30), rand(1,12) ));
}

现在执行频率计数,以 date("M" ...) 编写的月份为键:

$freq = array();
foreach( $dates as $timestamp ) {
    // assuming it's all the same year, discover the month
    $month = date("M", $timestamp );

    if( !isset($freq[$month]) ) $freq[$month] = 0;
    $freq[$month]++;
}

此时,您将拥有类似于您想要的东西:

print_r( $freq );

Array
(
    [Sep] => 2
    [Feb] => 2
    [Nov] => 1
    [Dec] => 1
    [Jan] => 2
    [Apr] => 1
    [May] => 1
)

如果年份不同,您可能希望以某种方式或其他方式进行双重连接。

于 2012-04-16T19:57:28.940 回答