簡體   English   中英

如何根據PHP中的鍵計算多個數組值?

[英]How to count multiple array values as per key in PHP?

我想要根據 id 計算 email 和 comment_id,比如 id=>2 email_count=>3,comment_count=>1。 誰能建議如何在 php 中循環或數組函數?

Array
(
    [0] => Array
        (
            [id] => 2
            [email] => ronak1@xyz.in
            [comment_id] => 3
        )
[1] => Array
    (
        [id] => 2
        [email] => ronak2@xyz.in
        [comment_id] => 3
    )

[2] => Array
    (
        [id] => 2
        [email] => hitesh@xyz.in
        [comment_id] => 3
    )

[3] => Array
    (
        [id] => 3
        [email] => jayendhar@xyz.in
        [comment_id] => 1
    )

[4] => Array
    (
        [id] => 3
        [email] => jayendhar@xyz.in
        [comment_id] => 2
    )

[5] => Array
    (
        [id] => 3
        [email] => jayendhar@xyz.in
        [comment_id] => 4
    )

[6] => Array
    (
        [id] => 3
        [email] => ronak@xyz.in
        [comment_id] => 1
    )

[7] => Array
    (
        [id] => 3
        [email] => ronak@xyz.in
        [comment_id] => 2
    )

[8] => Array
    (
        [id] => 3
        [email] => ronak@xyz.in
        [comment_id] => 4
    )

[9] => Array
    (
        [id] => 6
        [email] => hitesh@xyz.in
        [comment_id] => 
    )

)

它遍歷數組並使用 email 和 comment_id 作為鍵。 當一個鍵不存在時,它是用默認值(0)創建的

$comments = [
    [
        'id' => 2,
        'email' => 'ronak1@xyz.in',
        'comment_id' => 3
    ],
    [
        'id' => 2,
        'email' => 'ronak2@xyz.in',
        'comment_id' => 3
    ],
    [
        'id' => 2,
        'email' => 'hitesh@xyz.in',
        'comment_id' => 3
    ],
    [
        'id' => 3,
        'email' => 'jayendhar@xyz.in',
        'comment_id' => 1
    ],
    [
        'id' => 3,
        'email' => 'jayendhar@xyz.in',
        'comment_id' => 2
    ],
    [
        'id' => 3,
        'email' => 'jayendhar@xyz.in',
        'comment_id' => 4
    ]
    ,
    [
        'id' => 3,
        'email' => 'ronak@xyz.in',
        'comment_id' => 1
    ],
    [
        'id' => 3,
        'email' => 'ronak@xyz.in',
        'comment_id' => 2
    ],
    [
        'id' => 3,
        'email' => 'ronak@xyz.in',
        'comment_id' => 4
    ],
    [
        'id' => 6,
        'email' => 'hitesh@xyz.in',
        'comment_id' => 1
    ]

];
$emails = [];
$commentNumbers = [];

foreach ($comments as $comment) {
    $comment = (object)$comment;

    if (!array_key_exists($comment->email, $emails)) {
        $emails[$comment->email] = 0;
    }

    if (!array_key_exists($comment->comment_id, $commentNumbers)) {
        $commentNumbers[$comment->comment_id] = 0;
    }

    $emails[$comment->email] = $emails[$comment->email] + 1;
    $commentNumbers[$comment->comment_id] = $commentNumbers[$comment->comment_id] + 1;
}



var_dump($emails);
var_dump($commentNumbers);

結果:

array(5) {
  ["ronak1@xyz.in"]=>
  int(1)
  ["ronak2@xyz.in"]=>
  int(1)
  ["hitesh@xyz.in"]=>
  int(2)
  ["jayendhar@xyz.in"]=>
  int(3)
  ["ronak@xyz.in"]=>
  int(3)
}
array(4) {
  [3]=>
  int(3)
  [1]=>
  int(3)
  [2]=>
  int(2)
  [4]=>
  int(2)
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM