请教如何在PHP多维数组中筛选出自己想要的数值并输出?
我纠结了好久的一个问题,请大牛赐教!
有这样一个数组
<br />Array( <br />[0] => Array ( <br /> [log_data] => 4 <br /> [log_result] => 0 <br /> [log_time] => 2013-05-08 10:08:40 ) <br />[1] => Array ( <br /> [log_data] => 10018 <br /> [log_result] => 2 <br /> [log_time] => 2013-05-08 10:13:58 ) <br />[2] => Array ( <br /> [log_data] => 10018 <br /> [log_result] => 2 <br /> [log_time] => 2013-05-08 10:14:02 )<br />[3] => Array ( <br /> [log_data] => 10003 <br /> [log_result] => 50 <br /> [log_time] => 2013-05-08 10:18:29 ) <br />)<br />
上面仅列出3个,但实际上可能有几千个。
每个数组的log_time可能是不一样的。
我需要在HTML中按照日期筛选我想要的内容并循环输出该如何做呀?
我想输出的内容如下:
(行为不同值本文来源gaodai#ma#com搞*!代#%^码$网!搞代gaodaima码的log_data,列为log_time的年月日,值x为log_data以及log_time匹配的所有数组内的log_result的总和)?
2013-05-08 2013-05-09 2013-05-10?
log_data1 值x 值x 值x??
log_data2? 值x 值x 值x
log_data3? 值x 值x 值x
求教。
——解决方案——————–
$ar = Array( <br /> Array ( <br /> 'log_data' => 4,<br /> 'log_result' => 0,<br /> 'log_time' => '2013-05-08 10:08:40'<br /> ), <br /> Array ( <br /> 'log_data' => 10018,<br /> 'log_result' => 2,<br /> 'log_time' => '2013-05-08 10:13:58',<br /> ),<br /> Array ( <br /> 'log_data' => 10018,<br /> 'log_result' => 2,<br /> 'log_time' => '2013-05-08 10:14:02',<br /> ),<br /> Array (<br /> 'log_data' => 10003,<br /> 'log_result' => 50,<br /> 'log_time' => '2013-05-08 10:18:29',<br /> ),<br />);<br />foreach($ar as $item) {<br /> @$res[$item['log_data']][strtok($item['log_time'], ' ')] += $item['log_result'];<br />}<br />print_r($res);<br />
Array<br />(<br /> [4] => Array<br /> (<br /> [2013-05-08] => 0<br /> )<br /><br /> [10018] => Array<br /> (<br /> [2013-05-08] => 4<br /> )<br /><br /> [10003] => Array<br /> (<br /> [2013-05-08] => 50<br /> )<br /><br />)<br /><br />
——解决方案——————–
<?php
$ar = Array(
Array (
'log_data' => 4,
'log_result' => 0,
'log_time' => '2013-05-08 10:08:40'
),
Array (
'log_data' => 10018,
'log_result' => 2,
'log_time' => '2013-05-08 10:13:58',
),
Array (
'log_data' => 10018,
'log_result' => 2,
'log_time' => '2013-05-08 10:14:02',
),
Array (
'log_data' => 10003,