将数组中某一元素值相同的追加到该数组 本帖最后由 hutudeng2008 于 2015-01-13 11:10:44 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 $ar = array ( 0 => array ( 'num' => '1', 'sendPhone' => '15670015154', 'sendDate' => '2015-01-12 01:19:57', 'sendStatus' => '1', ), 1 => array ( 'num' => '1', 'sendPhone' => '15518788555', 'sendDate' => '2015-01-12 02:28:18', 'sendStatus' => '0', ), 2 => array ( 'num' => '1', 'sendPhone' => '15518788555', 'sendDate' => '2015-01-12 02:05:10', 'sendStatus' => '1', ), 3 => array ( 'num' => '1', 'sendPhone' => '15518788544', 'sendDate' => '2015-01-12 02:11:38', 'sendStatus' => '1', ), 4 => array ( 'num' => '2', 'sendPhone' => '15670015154', 'sendDate' => '2015-01-12 02:28:18', 'sendStatus' => '0', ),);$res = array();foreach($ar as $item) { $k = $item['sendPhone']; if(! isset($res[$k])) { $res[$k] = array( 'sendPhone' => $k, 'sendDate' => '', 'success' => 0, 'failure' => 0, ); } $res[$k]['sendDate'] = max($res[$k]['sendDate'], $item['sendDate']); $res[$k]['success'] += $item['sendStatus'] ? $item['num'] : 0; $res[$k]['failure'] += ! $item['sendStatus'] ? $item['num'] : 0;}print_r(array_values($res));Array( [0] => Array ( [sendPhone] => 15670015154 [sendDate] => 2015-01-12 02:28:18 [success] => 1 [failure] => 2 ) [1] => Array ( [sendPhone] => 15518788555 [sendDate] => 2015-01-12 02:28:18 [success] => 1 [failure] => 1 ) [2] => Array ( [sendPhone] => 15518788544 [sendDate] => 2015-01-12 02:11:38 [success] => 1 [failure] => 0 )) 谁是PHP开发高手? 求高人讲解~!PHP~~~! phpmyadmin 奇怪问题 求前辈指点PHP配置apache2.2+php5.2+mysql5.0 PHP里繁简体转换的问题 散分: 发布一款免费开源的Blog程序 PHP和MYSQL应该如何设置? 大家都用什么工具写、读PHP源代码? 关于访问mysql数据库的问题!请进! 如何获得CHECKBOX未选中的值? 关于CSV文件上传问题 git创建分支的时候提示not a valid name
0 => array (
'num' => '1',
'sendPhone' => '15670015154',
'sendDate' => '2015-01-12 01:19:57',
'sendStatus' => '1',
),
1 => array (
'num' => '1',
'sendPhone' => '15518788555',
'sendDate' => '2015-01-12 02:28:18',
'sendStatus' => '0',
),
2 => array (
'num' => '1',
'sendPhone' => '15518788555',
'sendDate' => '2015-01-12 02:05:10',
'sendStatus' => '1',
),
3 => array (
'num' => '1',
'sendPhone' => '15518788544',
'sendDate' => '2015-01-12 02:11:38',
'sendStatus' => '1',
),
4 => array (
'num' => '2',
'sendPhone' => '15670015154',
'sendDate' => '2015-01-12 02:28:18',
'sendStatus' => '0',
),
);$res = array();
foreach($ar as $item) {
$k = $item['sendPhone'];
if(! isset($res[$k])) {
$res[$k] = array(
'sendPhone' => $k,
'sendDate' => '',
'success' => 0,
'failure' => 0,
);
}
$res[$k]['sendDate'] = max($res[$k]['sendDate'], $item['sendDate']);
$res[$k]['success'] += $item['sendStatus'] ? $item['num'] : 0;
$res[$k]['failure'] += ! $item['sendStatus'] ? $item['num'] : 0;}
print_r(array_values($res));Array
(
[0] => Array
(
[sendPhone] => 15670015154
[sendDate] => 2015-01-12 02:28:18
[success] => 1
[failure] => 2
) [1] => Array
(
[sendPhone] => 15518788555
[sendDate] => 2015-01-12 02:28:18
[success] => 1
[failure] => 1
) [2] => Array
(
[sendPhone] => 15518788544
[sendDate] => 2015-01-12 02:11:38
[success] => 1
[failure] => 0
))