• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP数组有关问题,

php 搞代码 3年前 (2022-01-24) 41次浏览 已收录 0个评论

PHP数组问题,求助!
有这样一个数组:
$array = array (
0 =>
array (
‘day’ => ‘2014-3-11’,
‘count’ => 4,
‘day_0’ => 3,
‘day_1’ => 1,
),
1 =>
array (
‘day’ => ‘2014-3-7’,
‘count’ => 2,
‘day_0’ => 1,
),
2 =>
array (
‘day’ => ‘2014-3-6’,
‘count’ => 4,
‘day_4’ => 1,
‘day_5’ => 1,
),
3 =>
array (
‘day’ => ‘2014-3-10’,
‘count’ => 10,
‘day_0’ => 7,
‘day_1’ => 2,
‘day_2’ => 1,
),
);
日期间隔不固定,这里示例是2014-3-6 至2014-3-11,中间间隔五天,想通过对日期的排序和间隔的天数,得到如下数组:

补充:
3月6日与3月11日相差5天,所以3月6日就有day_1、day_2、day_3、day_4、day_5
3月7日与3月11日相差4天,所以3月7日就有day_1、day_2、day_3、day_4
3月8日与3月11日相差3天,所以3月8日就有day_1、day_2、day_3
3月9日与3月11日相差2天,所以3月9日就有day_1、day_2
3月10日与3月11日相差1天,所以3月10日就有day_1
3月11日与3月11日相差0天,所以没有day_……
……依次类推,得出一个类似三角型的数组

请大家帮帮忙吧!!!感谢!
——解决方案——————–

foreach($array as $v){<br />   $days[]=date("Ymd",strtotime($v['day'])<div>……本2文来源gaodai.ma#com搞##代!^码@网3</div><code>搞代gaodaima码</code>);<br />   $ar[date("Ymd",strtotime($v['day']))]=$v;<br />}   <br />$arr= range(min($days),max($days));<br />$max = max($arr);<br />foreach($arr as $v){<br />    $d = $max-$v;<br />    if(isset($ar[$v])){<br />	     $tt[$v]['day']=$ar[$v]['day'];<br />		 $tt[$v]['count']=$ar[$v]['count'];<br />		 for($i=1;$i<=$d;$i++) $tt[$v]['day_'.$i]=(int)$ar[$v]['day_'.$i];<br />	}else{<br />	     $tt[$v]['day']=date("Y-m-j",strtotime($v));<br />		 $tt[$v]['count']=0;<br />		 for($i=1;$i<=$d;$i++) $tt[$v]['day_'.$i]=0;<br />	}<br />}<br />print_r(array_values($tt));

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP数组有关问题,
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址