Heim >Backend-Entwicklung >PHP-Tutorial >将数组中某一元素值相同的追加到该数组
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 ))
Array( [0] => Array ( [sendPhone] => 15670015154 [sendDate] => 2015-01-12 02:28:18 [success] =>1, [failure]=>2, ) [1] => Array ( [num] => 1 [sendPhone] => 15518788555 [sendDate] => 2015-01-12 02:05:10 [success] => 1, [failure]=>1 ) [2] => Array ( [num] => 1 [sendPhone] => 15518788544 [sendDate] => 2015-01-12 02:11:38 [success] => 1, [failure]=> ))
$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 ))
$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 ))