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

将数组中某一元素值相同的追加到该数组

php 搞代码 3年前 (2022-01-23) 11次浏览 已收录 0个评论
文章目录[隐藏]
 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        ))

sendPhone是相同的,想实现为下面的数组,数组中sendStatus=1表示发送成功sendStatus=0表示失败,num=1,表示为1条信息,时间取最大时间,我是想把数组组合成方便遍历的模式。请教怎么写,

 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' => '15<div style="color:transparent">!本文来源gaodai.ma#com搞#代!码(网</div><em>搞gaodaima代码</em>670015154',    '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        ))

成功了。谢谢版主的支持,逻辑原来是这样的!,


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

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

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

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