2015-02-19 2 views
-1

Вот мой текущий массив: $stats->rowsPhp формат массива Google API аналитики

[["Austria","1","1","1"],["Brazil","5","5","5"],["Italy","4","4","4"]]


Мой прогресс:

$data= count($stats->rows); 

$array = array(); 
for($i=0 ; $i <= $data-1 ; $i++){ 

$total= $stats->rows[$i][1] + 
$stats->rows[$i][2] +$stats->rows[$i][3]; 


$array[][] = $stats->rows[$i][0].','.$total; 

    } 

И мой выходной массив следующим образом:

[["Austria,3"],["Brazil,15"],["Italy,12"]]


Но я хочу, чтобы следующий массив:

[["Austria",3],["Brazil",15],["Italy",12]]

ответ

0

Использование array_map:

$newData = array_map(function($value) { 
    return array($value[0], array_sum(array_slice($value, 1))); 
}, $stats->rows); 

Чтобы вставить новое значение в начале массива:

array_unshift($newData, array("Country","Enter")); 
+0

array_push ($ newData, ["Страна", "Enter"]); ? сначала 0 [[«Страна», «Ввод»], [«Австрия», 3], [«Бразилия», 15], [«Италия», 12]] – pull

+0

@pull, что вы имеете в виду? – msfoster

+0

array_push ($ newData, ["index0", "Enter"]); Ваша функция Как я могу это сделать? индекс 0 [[«Страна», «Ввод»], [«Австрия», 3], [«Бразилия», 15], [«Италия», 12]] – pull

0

Попробуйте это:

Update

// from your curent array 
$newarray=array(); 
if(count($stats->rows)>0)foreach($stats->rows as $k=>$v){ 
    $newarray[$k]=array($stats->rows[0],($stats->rows[1]+$stats->rows[2]+$stats->rows[3])); 
} 
+0

@pull Просьба представить текущий массив и выходной массив .. –

+0

предмет я обновленное снова – pull

+0

@pull проверьте мое обновление .. –