计算一个值出现的次数 Php
Count How Many Times a Value Appears Php
我有一个 foreach 和下面的代码 returns 给我你可以从屏幕截图 1
中看到的值 (int)
foreach ($getMatches->participants as $data) {
$count = ($data->id);
echo '<pre id="json">'; var_dump($count); echo '</pre>';
}
所以,我想计算同一个值出现了多少次。
在这种情况下: 值 98:2 次;值120:3次等
我尝试将我的 $count 变量转换为数组并像下面的代码一样使用 array_count_values,但没有成功。正如您在屏幕截图 2 中看到的那样,值 98 仅返回 1 而不是 2,值 120 仅返回 1 而不是 3 等
foreach ($getMatches->participants as $data) {
$count = array($data->id);
echo '<pre id="json">'; var_dump(array_count_values($count)); echo '</pre>';
}
array_count_values
,享受:-)
$array = array(12,43,66,21,56,43,43,78,78,100,43,43,43,21);
//basically we get the same array
foreach ($array as $data) {
$count[] = $data;
}
$vals = array_count_values($count);
print_r($vals);
结果:
Array
(
[12] => 1
[43] => 6
[66] => 1
[21] => 2
[56] => 1
[78] => 2
[100] => 1
)
如果 $getMatches->participants
是一个对象数组,您应该首先对其进行循环和重复总和。
$count = [];
foreach ($getMatches->participants as $data)
{
if (isset($count[$data->id]))
{
$count[$data->id] = $count[$data->id] + 1;
}
else
{
$count[$data->id] = 1;
}
}
然后在其他循环中显示结果
echo '<pre id="json">';
foreach ($count as $key => $data)
{
echo $key . ' repeated ' . $data . ' times'. PHP_EOL;
}
echo '</pre>';
您可能没有得到预期的结果,因为您在 foreach 循环中执行所有操作
让我们尝试使用 Laravel 个集合
$items = collect([]);
foreach ($getMatches->participants as $data) {
$items->push($data->id);
}
dd($items->countBy()->all());
我有一个 foreach 和下面的代码 returns 给我你可以从屏幕截图 1
中看到的值 (int)foreach ($getMatches->participants as $data) {
$count = ($data->id);
echo '<pre id="json">'; var_dump($count); echo '</pre>';
}
所以,我想计算同一个值出现了多少次。 在这种情况下: 值 98:2 次;值120:3次等
我尝试将我的 $count 变量转换为数组并像下面的代码一样使用 array_count_values,但没有成功。正如您在屏幕截图 2 中看到的那样,值 98 仅返回 1 而不是 2,值 120 仅返回 1 而不是 3 等
foreach ($getMatches->participants as $data) {
$count = array($data->id);
echo '<pre id="json">'; var_dump(array_count_values($count)); echo '</pre>';
}
array_count_values
,享受:-)
$array = array(12,43,66,21,56,43,43,78,78,100,43,43,43,21);
//basically we get the same array
foreach ($array as $data) {
$count[] = $data;
}
$vals = array_count_values($count);
print_r($vals);
结果:
Array
(
[12] => 1
[43] => 6
[66] => 1
[21] => 2
[56] => 1
[78] => 2
[100] => 1
)
如果 $getMatches->participants
是一个对象数组,您应该首先对其进行循环和重复总和。
$count = [];
foreach ($getMatches->participants as $data)
{
if (isset($count[$data->id]))
{
$count[$data->id] = $count[$data->id] + 1;
}
else
{
$count[$data->id] = 1;
}
}
然后在其他循环中显示结果
echo '<pre id="json">';
foreach ($count as $key => $data)
{
echo $key . ' repeated ' . $data . ' times'. PHP_EOL;
}
echo '</pre>';
您可能没有得到预期的结果,因为您在 foreach 循环中执行所有操作
让我们尝试使用 Laravel 个集合
$items = collect([]);
foreach ($getMatches->participants as $data) {
$items->push($data->id);
}
dd($items->countBy()->all());