加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

php多维数组按类型和日期出现的次数

发布时间:2020-12-13 15:57:26 所属栏目:PHP教程 来源:网络整理
导读:我有以下数组: Array([0] = Array ( [0] = 2015-07-18 [1] = 22 SSH )[1] = Array ( [0] = 2015-07-18 [1] = 80 HTTP )[2] = Array ( [0] = 2015-07-18 [1] = 3389 Remote Desktop )[3] = Array ( [0] = 2015-07-19 [1] = 3389 Remote Desktop )[4] = Array
我有以下数组:

Array
(
[0] => Array
    (
        [0] => 2015-07-18
        [1] => 22 SSH
    )

[1] => Array
    (
        [0] => 2015-07-18
        [1] => 80 HTTP
    )

[2] => Array
    (
        [0] => 2015-07-18
        [1] => 3389 Remote Desktop
    )

[3] => Array
    (
        [0] => 2015-07-19
        [1] => 3389 Remote Desktop
    )

[4] => Array
    (
        [0] => 2015-07-19
        [1] => 3389 Remote Desktop
    )
)

并且需要按日期和出现次数计算的数据采用以下格式:

array(4) {
  [0]=>
  array(1) {
    [0]=> "3389 Remote Desktop"
    [1]=> "1,2"
  }
  [1]=>
  array(1) {
    [0]=> "22 SSH"
    [1]=> "1,0"
  }
  [2]=>
  array(1) {
    [0]=> "80 HTTP"
    [1]=> "1,0"
  }
}

我怎样才能做到这一点?我可以计算所有出现但未按日期和类型分组,如下所示:

$counts = array();
foreach( $stack_stats_timeline as $value) {
    foreach( $value as $k => $v) {
        if( !isset( $counts[$k])) $counts[$k] = array();
        if( !isset( $counts[$k][$v])) $counts[$k][$v] = 0;
        $counts[$k][$v] += 1;
    }
}

解决方法

我想这会帮助你让它发挥作用

$result = array();
$count = 1;
foreach ($arr as $key => &$value) {
    $hash = $value[1];
    $result[$hash][0] = $value[1];
    $result[$hash][1][$value[0]] = (isset($result[$hash][1][$value[0]])) ? $count + 1 : $count;
}
print_r(array_values($result));

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读