我想要现有数组中的新数组,键作为旧数组的重复值,值作为重复计数?
I want new array from existing array with key as repeated value from old array and value as repeated count?
我的旧阵列
array:7 [
0 => "22-Feb-2017"
1 => "22-Feb-2017"
2 => "22-Feb-2017"
3 => "27-May-2015"
4 => "10-May-2015"
5 => "10-May-2015"
6 => "08-May-2015"
]
我想要新数组作为
array:7 [
22-Feb-2017 => "3"
27-May-2015 => "1"
10-May-2015 => "2"
08-May-2015 => "1"
]
不确定您是否正在寻找这样的东西
请检查以下输出:
$a=array(0 => "22-Feb-2017",
1 => "22-Feb-2017",
2 => "22-Feb-2017",
3 => "27-May-2015",
4 => "10-May-2015",
5 => "10-May-2015",
6 => "08-May-2015");
///array_count_values counts the same values count////
$new_array = array_count_values($a);
/// now let's interchange the keys and values////
foreach($new_array as $key=>$value){
$out[$value] = $key;
}
print_r($out);
一种解决方法:
$dates = [
0 => "22-Feb-2017",
1 => "22-Feb-2017",
2 => "22-Feb-2017",
3 => "27-May-2015",
4 => "10-May-2015",
5 => "10-May-2015",
6 => "08-May-2015",
];
$result = [];
foreach ($dates as $date) {
$result[$date] = array_key_exists($date, $result) ? $result[$date] + 1 : 1;
}
print_r($result);
只需尝试使用 array_count_values
。array_count_values()
函数计算数组的所有值。
<?php
$dates = [
0 => "22-Feb-2017",
1 => "22-Feb-2017",
2 => "22-Feb-2017",
3 => "27-May-2015",
4 => "10-May-2015",
5 => "10-May-2015",
6 => "08-May-2015",
];
$final_array = array_count_values($dates);
print_r($final_array);
输出
Array
(
[22-Feb-2017] => 3
[27-May-2015] => 1
[10-May-2015] => 2
[08-May-2015] => 1
)
这正是您所需要的:
<?php
$old_array=array(
0 => "22-Feb-2017",
1 => "22-Feb-2017",
2 => "22-Feb-2017",
3 => "27-May-2015",
4 => "10-May-2015",
5 => "10-May-2015",
6 => "08-May-2015");
/*
Counting the occurances of value & storing it in a new array in the format:
array("22-Feb-2017"=>3, "27-May-2015"=>2, .........)
*/
$new_array = array_count_values($a);
print_r($new_array);
echo $new_array["22-Feb-2017"];
?>
$data=[0 => "22-Feb-2017",1 => "22-Feb-2017",2 => "22-Feb-2017",3 => "27-May-2015",4 => "10-May-2015",5 => "10-May-2015",6 => "08-May-2015"];
$a=array_count_values($data);
var_dump($a);
我的旧阵列
array:7 [
0 => "22-Feb-2017"
1 => "22-Feb-2017"
2 => "22-Feb-2017"
3 => "27-May-2015"
4 => "10-May-2015"
5 => "10-May-2015"
6 => "08-May-2015"
]
我想要新数组作为
array:7 [
22-Feb-2017 => "3"
27-May-2015 => "1"
10-May-2015 => "2"
08-May-2015 => "1"
]
不确定您是否正在寻找这样的东西
请检查以下输出:
$a=array(0 => "22-Feb-2017",
1 => "22-Feb-2017",
2 => "22-Feb-2017",
3 => "27-May-2015",
4 => "10-May-2015",
5 => "10-May-2015",
6 => "08-May-2015");
///array_count_values counts the same values count////
$new_array = array_count_values($a);
/// now let's interchange the keys and values////
foreach($new_array as $key=>$value){
$out[$value] = $key;
}
print_r($out);
一种解决方法:
$dates = [
0 => "22-Feb-2017",
1 => "22-Feb-2017",
2 => "22-Feb-2017",
3 => "27-May-2015",
4 => "10-May-2015",
5 => "10-May-2015",
6 => "08-May-2015",
];
$result = [];
foreach ($dates as $date) {
$result[$date] = array_key_exists($date, $result) ? $result[$date] + 1 : 1;
}
print_r($result);
只需尝试使用 array_count_values
。array_count_values()
函数计算数组的所有值。
<?php
$dates = [
0 => "22-Feb-2017",
1 => "22-Feb-2017",
2 => "22-Feb-2017",
3 => "27-May-2015",
4 => "10-May-2015",
5 => "10-May-2015",
6 => "08-May-2015",
];
$final_array = array_count_values($dates);
print_r($final_array);
输出
Array
(
[22-Feb-2017] => 3
[27-May-2015] => 1
[10-May-2015] => 2
[08-May-2015] => 1
)
这正是您所需要的:
<?php
$old_array=array(
0 => "22-Feb-2017",
1 => "22-Feb-2017",
2 => "22-Feb-2017",
3 => "27-May-2015",
4 => "10-May-2015",
5 => "10-May-2015",
6 => "08-May-2015");
/*
Counting the occurances of value & storing it in a new array in the format:
array("22-Feb-2017"=>3, "27-May-2015"=>2, .........)
*/
$new_array = array_count_values($a);
print_r($new_array);
echo $new_array["22-Feb-2017"];
?>
$data=[0 => "22-Feb-2017",1 => "22-Feb-2017",2 => "22-Feb-2017",3 => "27-May-2015",4 => "10-May-2015",5 => "10-May-2015",6 => "08-May-2015"];
$a=array_count_values($data);
var_dump($a);