$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,
'log_result' => 50,
'log_time' => '2013-05-08 10:18:29',
),
);
foreach($ar as $item) {
@$res[$item['log_data']][strtok($item['log_time'], ' ')] += $item['log_result'];
}
print_r($res);
Array
(
[4] => Array
(
[2013-05-08] => 0
) [10018] => Array
(
[2013-05-08] => 4
) [10003] => Array
(
[2013-05-08] => 50
))
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,
'log_result' => 50,
'log_time' => '2013-05-08 10:18:29',
),
);
foreach($ar as $item) {
@$res[$item['log_data']][strtok($item['log_time'], ' ')] += $item['log_result'];
}
print_r($res);
Array
(
[4] => Array
(
[2013-05-08] => 0
) [10018] => Array
(
[2013-05-08] => 4
) [10003] => Array
(
[2013-05-08] => 50
))
解决方案 »
- 如何判断网页提交过来的数据是来自本网站而不是来自其他网站
- 一个数组,怎么找到乘积小于某一个数的组合,并保留
- 想详细了解一个网站开发的全过程,包括设计,共同部分的处理等等
- php 如何声明手机头部
- php文件下载封装成一个类 老是多出3个字节,请问哪里错了?
- 请问这段代码为什么总是显示mysql error1064:You have an error in your SQL syntax. Check the manual that corresponds to your MySQL
- 询问一个关于PHP.INI中设置的一个菜问题......
- 怎么用正则获取到这个href?
- PHP新手求助,如何在PHP中导入JavaScript文件?
- wordpress 里面如何只获取菜单的名称和链接? wp_nav_menu会把样式取出.
- 求段代码:判断数组里是否有重复内容,如果有就只更新指定数量,没有就添加
- PHP在Linux下执行exec
<?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,
'log_result' => 50,
'log_time' => '2013-05-08 10:18:29',
),
);$ret = array();foreach($ar as $val){
if(!isset($ret[$val['log_data']][substr($val['log_time'],0,10)])){
$ret[$val['log_data']][substr($val['log_time'],0,10)] = 0;
}
$ret[$val['log_data']][substr($val['log_time'],0,10)] += $val['log_result'];
}print_r($ret);
?>Array
(
[4] => Array
(
[2013-05-08] => 0
) [10018] => Array
(
[2013-05-08] => 4
) [10003] => Array
(
[2013-05-08] => 50
))
是关于两个多维数组之间进行替换的问题数组A:
Array (
[0] => Array ( [pay_id] => 767 [pay_time] => 2013-05-28 04:39:25 [player_id] => 8860 [item_id] => 605688164 )
[1] => Array ( [pay_id] => 768 [pay_time] => 2013-05-28 12:45:28 [player_id] => 5650 [item_id] => 605689038 ) )数组B:
Array (
[0] => Array ( [id] => 1 [pay_num] => 1 [item_id1] => 688644348 [item_id2] => 847414240 [item_id3] => 605688164 )
[1] => Array ( [id] => 2 [pay_num] => 2 [item_id1] => 688644803 [item_id2] => 847991781 [item_id3] => 605689038 )
[2] => Array ( [id] => 3 [pay_num] => 3 [item_id1] => 688645902 [item_id2] => 847999379 [item_id3] => 605689867 )
[3] => Array ( [id] => 4 [pay_num] => 4 [item_id1] => 688644343 [item_id2] => 848000939 [item_id3] => 605690278 )
[4] => Array ( [id] => 5 [pay_num] => 5 [item_id1] => 688644340 [item_id2] => 848041944 [item_id3] => 605690858 )
[5] => Array ( [id] => 6 [pay_num] => 6 [item_id1] => 688644796 [item_id2] => 848044890 [item_id3] => 605692699 )
)数组A中的item_id是属于数组B中的itemid1 - itemid3中的一个。求教,有什么好的方法可以将数组A中的item_id替换成数组B中对应的pay_num,并输出为数组C?
Array ( 'pay_id' => 767, 'pay_time' => '2013-05-28 04:39:25', 'player_id' => 8860, 'item_id' => 605688164 ),
Array ( 'pay_id' => 768, 'pay_time' => '2013-05-28 12:45:28', 'player_id' => 5650, 'item_id' => 605689038 ),
);$b = Array (
Array ( 'id' => 1, 'pay_num' => 1, 'item_id1' => 688644348, 'item_id2' => 847414240, 'item_id3' => 605688164 ),
Array ( 'id' => 2, 'pay_num' => 2, 'item_id1' => 688644803, 'item_id2' => 847991781, 'item_id3' => 605689038 ),
Array ( 'id' => 3, 'pay_num' => 3, 'item_id1' => 688645902, 'item_id2' => 847999379, 'item_id3' => 605689867 ),
Array ( 'id' => 4, 'pay_num' => 4, 'item_id1' => 688644343, 'item_id2' => 848000939, 'item_id3' => 605690278 ),
Array ( 'id' => 5, 'pay_num' => 5, 'item_id1' => 688644340, 'item_id2' => 848041944, 'item_id3' => 605690858 ),
Array ( 'id' => 6, 'pay_num' => 6, 'item_id1' => 688644796, 'item_id2' => 848044890, 'item_id3' => 605692699 ),
);foreach($a as $item) {
foreach(array_filter($b, function($row) use ($item) {
return in_array(array_search($item['item_id'], $row), array('item_id1', 'item_id2', 'item_id3'));
}) as $t) $item['item_id'] = $t['pay_num'];
$c[] = $item;
}
print_r($c);Array
(
[0] => Array
(
[pay_id] => 767
[pay_time] => 2013-05-28 04:39:25
[player_id] => 8860
[item_id] => 1
) [1] => Array
(
[pay_id] => 768
[pay_time] => 2013-05-28 12:45:28
[player_id] => 5650
[item_id] => 2
))
这样下次要是过滤条件变了直接改封装的函数就可以了,相当于把接口分离出来