如何在多维数组中计数
How to count in multidimensional array
我在使用多维数组时遇到问题:
Array
(
[start] => Array
(
[0] => mymail@google.mail
[1] => antohermail@yahoo.com
[2] => antohermail@yahoo.com
[3] => mymail@google.mail
[4] => 222222@google.mail
[5] => mymail@google.mail
[6] => bot001e08@lopbot001
[7] => antohermail@yahoo.com
[8] => mymail@google.mail
[9] => bot001e02@lopbot001.mail
)
[name] => Array
(
[0] => 43
[1] => 17
[2] => 15
[3] => 34
[4] => 12
[5] => 37
[6] => 14
[7] => 12
[8] => 33
[9] => 25
)
)
这个多数组有相同数量的键。我想显示所有不同的电子邮件(起始数组)并计算名称数组中的所有值。
所以期望的输出应该是这样的:
我的邮箱@google.mail: 43+34+37+23 = 137
antohermail@yahoo.com: 17 +15+ 12 = 44
222222@google.mail: 12
bot001e08@lopbot001: 14
bot001e02@lopbot001.mail: 25
使用特殊函数我可以得到这样的结果:
Array
(
[0] => Array
(
[0] => Array
(
[mymail@google.mail] => 43
[antohermail@yahoo.com] => 17
[antohermail@yahoo.com] => 15
)
[1] => Array
(
[mymail@google.mail] => 34
[222222@google.mail] => 12
)
[2] => Array
(
[mymail@google.mail] => 37
[bot001e08@lopbot001] => 14
[222222@google.mail] => 12
)
[3] => Array
(
[mymail@google.mail] => 33
[bot001e02@lopbot001.mail] => 25
)
)
)
但我仍然无法计算这个多数组的值
使用这个带有嵌套索引的简单循环
$mails = array();
foreach ($data['start'] as $key => $value) {
$mails[$value]['sum'] = @$mails[$value]['sum'] + $data['name'][$key];
}
print_r($mails);
结果:
(
[mymail@google.mail] => Array
(
[sum] => 147
)
[antohermail@yahoo.com] => Array
(
[sum] => 44
)
[222222@google.mail] => Array
(
[sum] => 12
)
[bot001e08@lopbot001] => Array
(
[sum] => 14
)
[bot001e02@lopbot001.mail] => Array
(
[sum] => 25
)
)
我在使用多维数组时遇到问题:
Array
(
[start] => Array
(
[0] => mymail@google.mail
[1] => antohermail@yahoo.com
[2] => antohermail@yahoo.com
[3] => mymail@google.mail
[4] => 222222@google.mail
[5] => mymail@google.mail
[6] => bot001e08@lopbot001
[7] => antohermail@yahoo.com
[8] => mymail@google.mail
[9] => bot001e02@lopbot001.mail
)
[name] => Array
(
[0] => 43
[1] => 17
[2] => 15
[3] => 34
[4] => 12
[5] => 37
[6] => 14
[7] => 12
[8] => 33
[9] => 25
)
)
这个多数组有相同数量的键。我想显示所有不同的电子邮件(起始数组)并计算名称数组中的所有值。
所以期望的输出应该是这样的:
我的邮箱@google.mail: 43+34+37+23 = 137
antohermail@yahoo.com: 17 +15+ 12 = 44
222222@google.mail: 12
bot001e08@lopbot001: 14
bot001e02@lopbot001.mail: 25
使用特殊函数我可以得到这样的结果:
Array
(
[0] => Array
(
[0] => Array
(
[mymail@google.mail] => 43
[antohermail@yahoo.com] => 17
[antohermail@yahoo.com] => 15
)
[1] => Array
(
[mymail@google.mail] => 34
[222222@google.mail] => 12
)
[2] => Array
(
[mymail@google.mail] => 37
[bot001e08@lopbot001] => 14
[222222@google.mail] => 12
)
[3] => Array
(
[mymail@google.mail] => 33
[bot001e02@lopbot001.mail] => 25
)
)
)
但我仍然无法计算这个多数组的值
使用这个带有嵌套索引的简单循环
$mails = array();
foreach ($data['start'] as $key => $value) {
$mails[$value]['sum'] = @$mails[$value]['sum'] + $data['name'][$key];
}
print_r($mails);
结果:
(
[mymail@google.mail] => Array
(
[sum] => 147
)
[antohermail@yahoo.com] => Array
(
[sum] => 44
)
[222222@google.mail] => Array
(
[sum] => 12
)
[bot001e08@lopbot001] => Array
(
[sum] => 14
)
[bot001e02@lopbot001.mail] => Array
(
[sum] => 25
)
)