我有这样的数组
$arr = array(1,1,1,2,2,3,3,1,1,2,2,3);
Run Code Online (Sandbox Code Playgroud)
我发现了一个功能array_count_values
.但它会将所有相同的值组合在一起并对它们进行计数并打破序列.
$result[1] = 5
$result[2] = 4
$result[3] = 3
Run Code Online (Sandbox Code Playgroud)
如何创建将遵循序列的count数组.我真正想要的结果是:
[1] = 3;
[2] = 2;
[3] = 2;
[2] = 2;
[3] = 1;
Run Code Online (Sandbox Code Playgroud)
Mer*_*ede 23
PHP的array_count_values函数怎么样?
<?php
$array = array(1, "hello", 1, "world", "hello");
print_r(array_count_values($array));
?>
Run Code Online (Sandbox Code Playgroud)
输出:
Array
(
[1] => 2
[hello] => 2
[world] => 1
)
Run Code Online (Sandbox Code Playgroud)
zer*_*kms 16
可以简单地手动完成:
$arr = array(1,1,1,2,2,3,3,1,1,2,2,3);
$result = array();
$prev_value = array('value' => null, 'amount' => null);
foreach ($arr as $val) {
if ($prev_value['value'] != $val) {
unset($prev_value);
$prev_value = array('value' => $val, 'amount' => 0);
$result[] =& $prev_value;
}
$prev_value['amount']++;
}
var_dump($result);
Run Code Online (Sandbox Code Playgroud)