操纵多维数组
问题描述:
我有一个多维数组。由于字符串“volvo”的值出现两次,所以我想合并这些键。这里的源阵列:操纵多维数组
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
)
)
,我想将其转换为这一个:
Array
(
[0] => Array
(
[0] => Volvo
[1] => 39
)
[1] => Array
(
[0] => BMW
[1] => 15
)
[2] => Array
(
[0] => Saab
[1] => 5
)
)
答
我认为这将更有意义返回关联数组,这样你可以做$arr["volvo"]
,如果你对关联数组没有问题,只需删除第二个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:
答
$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
答
你可以使用
array_unique(Your_array, SORT_REGULAR);
你尝试过什么? – hassan
$ row){ \t \t \t $ temp = $ row; \t \t \t如果 \t \t \t \t array_push($结果,$ TEMP)(in_array($温度,$数据)!); \t \t \t别的 \t \t \t \t $结果[$键] [1] + = $温度[1]; \t \t return $ result; (数组(“沃尔沃”,22),数组(“宝马”,15),数组(“萨博”,5),数组(“ \t print(“
”); –对不起,我不习惯多维数组。 :) thnx –