2017-04-02 9 views
-2

私は多次元配列を持っています。文字列 "volvo"の値が2回存在するので、それらのキーを組み合わせたい。多次元配列を操作する

Array 
(

    [0] => Array 
     (
      [0] => Volvo 
      [1] => 22 
     ) 

    [1] => Array 
     (
      [0] => BMW 
      [1] => 15 
     ) 

    [2] => Array 
     (
      [0] => Saab 
      [1] => 5 
     ) 

    [3] => Array 
     (
      [0] => Volvo 
      [1] => 17 
     ) 

) 

と私はこの1つに変換したい:ここではソース配列です

Array 
(

    [0] => Array 
     (
      [0] => Volvo 
      [1] => 39 
     ) 

    [1] => Array 
     (
      [0] => BMW 
      [1] => 15 
     ) 

    [2] => Array 
     (
      [0] => Saab 
      [1] => 5 
     ) 
) 
私は、これは連想配列を返すために、より理にかなって考えて
+1

を試してみましたを使用することができますが

ない場合は、これは正しい出力を得るのだろうか? – hassan

+0

<?php \t function getSummary($ data){ \t \t $ result = array(); \t \t foreach($ data = $ $行){ \t \t \t $ temp = $ row; \t \t \t(in_array($の一時、$データ)!) \t \t \t \t array_push($結果、$温度)であれば、 \t \t他\t \t \t \t \t $結果[$キー] [1] + = $ TEMP [1]; \t \t return $ result; \t} \t \t $データ=配列(配列( "ボルボ"、22)、アレイ( "BMW"、15)、アレイ( "サーブ"、5)、アレイ( "ボルボ"、17))。 \t print( "

"); \t print_r(getsummary($data)); \t print("
"); –

+0

多次元配列には使用されていません。 :) thnx –

答えて

0

、そのようにします$arr["volvo"]できます。関連する配列が問題ない場合は、2番目のforeachループを削除してください。

<?php 

$arr = Array (
    Array (
     "Volvo", 
     22 
    ), 
    Array (
     "BMW", 
     15 
    ), 
    Array (
     "Saab", 
     5 
    ), 
    Array (
     "Volvo", 
     17 
    ) 
); 

$tmpNewArr = Array(); 
foreach ($arr as $ele) { 
    if (!isset($arr[$ele[0]])) { 
     $tmpNewArr[$ele[0]] = 0; 
    } 
    $tmpNewArr[$ele[0]] += $ele[1]; 
} 
$newArr = []; 
foreach ($tmpNewArr as $key => $ele) { 
    array_push($newArr,[$key,$ele]); 
} 

var_dump($newArr); 

?> 
ここ

eval.inです:

https://eval.in/766340

0
$keyValueCars = []; 
foreach($cars as $car){ 
    $brand = $car[0]; 
    $total = $car[1]; 
    if(!isset($keyValueCars[$brand])){ 
     $keyValueCars[$brand] = total; 
    } 
    else{ 
     $keyValueCars[$brand] += total; 
    } 
} 
+0

質問に答えるためのthnx。関数issetはin_array(私はPHP上で話していた)を使用するよりも好ましいと思われる。 thnx @ r4ccoon –

+0

私の答えは大丈夫だと思ったら答えを記入してください – r4ccoon

-1

あなたは何を

array_unique(Your_array, SORT_REGULAR);