我已经坐了一段时间了,已经很晚了。我试图从上个月的大部分销售中获得前3名,我需要计算上个月数组1的id等于数组2的次数(6=最后一个atm)。似id 4= 2,id 7=3
这可能不是一个完美的解决方案,但我只是试图打破它的自我,所以以后的‘也许’的问题,我会照顾好当我撞墙时,所以请,如果有人可以帮助我,我是伟大的。
UPDATE -我将添加我在这里寻找的结果:(很抱歉我之前没有,它使事情变得更容易了:-)下面的结果,是因为我希望从2014-06-01到那个月的最后一天,在这个数组下的数组中,只有6-7-8不是2014-06。
希望现在更有意义^^
Array
(
[0] => Array
(
[0] => Array
(
[4] => 2
[7] => 3
[1] => 2
[3] => 2
[9] => 1
[12] => 1
[2] => 1
[13] => 1
)
)
)
Array
(
[0] => Array
(
[0] => Array
(
[0] => 4
[1] => 4
[2] => 7
[3] => 1
[4] => 7
[5] => 7
[6] => 3
[7] => 3
[8] => 4
[9] => 9
[10] => 12
[11] => 2
[12] => 13
[13] => 1
)
[1] => Array
(
[0] => 2014-06-18
[1] => 2014-06-10
[2] => 2014-06-05
[3] => 2014-06-05
[4] => 2014-06-12
[5] => 2014-06-11
[6] => 2013-12-12
[7] => 2014-07-23
[8] => 2014-05-13
[9] => 2014-06-01
[10] => 2014-06-12
[11] => 2014-06-04
[12] => 2014-06-04
[13] => 2014-06-11
)
)
)发布于 2014-07-23 22:09:21
我希望我理解的是你真正想要的。假设您的数组定义是:
$arr = Array
(
0 => Array
(
0 => Array
(
0 => 4,
1 => 4,
2 => 7,
3 => 1,
4 => 7,
5 => 7,
6 => 3,
7 => 3,
8 => 4,
9 => 9,
10 => 12,
11 => 2,
12 => 13,
13 => 1
),
1 => Array
(
0 => "2014-06-18",
1 => "2014-06-10",
2 => "2014-06-05",
3 => "2014-06-05",
4 => "2014-06-12",
5 => "2014-06-11",
6 => "2013-12-12",
7 => "2014-07-23",
8 => "2014-05-13",
9 => "2014-06-01",
10 => "2014-06-12",
11 => "2014-06-04",
12 => "2014-06-04",
13 => "2014-06-11"
)
)
);如果需要测试日期是否低于6个月,然后将它们的id、sales和date放在一起,则需要使用以下代码
$result = [];
$index=0;
foreach ($arr[0][0] as $key => $value)
{
$date1 = new DateTime($arr[0][1][$key]);
$date2 = new DateTime();
$diff = $date1->diff($date2);
$diff = ($diff->format('%y') * 12) + $diff->format('%m');
if($diff<=6)
{
$result[$index]['id'] = $key;
$result[$index]['sales'] = $value;
$result[$index]['date'] = $arr[0][1][$key];
$index++;
}
}
var_dump($result);发布于 2014-07-23 22:10:49
array将给出每个值出现在数组1中的次数。
$count = array_count_values($array[0][0]);结果:
Array
(
[4] => 3
[7] => 3
[1] => 2
[3] => 2
[9] => 1
[12] => 1
[2] => 1
[13] => 1
)然后可以使用循环与数组2组合:
$result = array();
foreach($count as $key=>$val) {
$result[$array[0][1][$key]] = $val;
}结果:
Array
(
[2014-06-12] => 3
[2014-07-23] => 3
[2014-06-10] => 2
[2014-06-05] => 1
[2014-06-01] => 1
[2014-06-04] => 1
[2014-06-11] => 1
)See demo
https://stackoverflow.com/questions/24921460
复制相似问题