[英]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.