2017-02-22 4 views
0

Мой старый массивЯ хочу, чтобы новый массив из существующего массива с ключом был повторенным значением из старого массива и значением в качестве повторного подсчета?

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" 
] 

ответ

2

Пожалуйста, проверьте ниже вывод:

$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); 
+0

Спасибо !! Это работает –

1

Один из способов сделать это:

$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); 
+0

Спасибо! это Works –

6

Просто попробуйте использовать array_count_values .The 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 
) 
+1

thasnk !! Это работает для меня –

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"]; 
    ?> 
+0

спасибо за ответ –

1
$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); 
+0

благодарит за ответ –

Смежные вопросы