我希望根据ID计算电子邮件和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] =>
)
)
答案 0 :(得分:0)
它遍历数组并使用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)
}