2015-08-06 2 views
1

Моя строка выглядит следующим образом:Как посчитать разобранном массив

244.53.66=1,53.646.77=1,666.534.23=5,664.521.64=3,535.777.54=2,533.886=5,22.153=5,643.786=2 

Я разобранном это нравится:

$string = "244.53.66=1,53.646.77=1,666.534.23=5,664.521.64=3,535.777.54=2,533.886=5,22.153=5,643.786=2"; 
    $array = explode(",", $string); 
      $array2=array(); 
      for($i = 0; $i<count($array); $i++) 
      { 
       array_push($array2, explode("=",$array[$i])); 
      } 

теперь $ array2 получил эти значения:

$array2[0][0] = "244.53.66"; 
$array2[0][1] = "1"; 
$array2[1][0] = "53.646.77"; 
$array2[1][1] = "1"; 

и т.д.

Как я могу подсчитать все значения каждого типа, пример:

2 x 1 (две записи со значением 1), 1x1 (1 запись со значением 1) itd.

Я хочу сохранить это как массив:

$array3[index] = "amount same values"; 

Можете ли вы мне помочь?

+0

Каким будет ожидаемый результат от вашего текущего массива ввода? – Rizier123

ответ

0

Вам нужно сначала получить идентификаторы в отдельном массиве, а затем использовать array_count_values для подсчета количества идентификаторов.

Вот окончательный код:

<?php 
$string = "244.53.66=1,53.646.77=1,666.534.23=5,664.521.64=3,535.777.54=2,533.886=5,22.153=5,643.786=2"; 
$array = explode(",", $string); 
$array2=array(); 
for($i = 0; $i<count($array); $i++) 
{ 
    array_push($array2, explode("=",$array[$i])); 
} 

$array3 = array(); 
//Iterate through array 2 to extract all IDs 
for($i = 0; $i<count($array2); $i++) 
{ 
    array_push($array3, $array2[$i][1]); 
} 
$vals = array_count_values($array3); 
print_r($vals); 
?> 

Какие выходы

Array 
(
    [1] => 2 
    [5] => 3 
    [3] => 1 
    [2] => 2 
) 

Днем кодирования на StackOverflow!

+0

Спасибо, человек, отлично работает :) – xqz

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