我有一个如下所示的数组,其中一些行具有相同的名称。我无法快速尝试做我想做的事。
使用foreach循环我将如何通过每个循环添加相同名称的值并将其放入新数组?
谢谢:)
Array
(
[0] => Array
(
[0] => Name1
[1] => Value
)
[1] => Array
(
[0] => Name2
[1] => Value
)
[2] => Array
(
[0] => Name1
[1] => Value
)
[3] => Array
(
[0] => Name3
[1] => Value
)
[4] => Array
(
[0] => Name2
[1] => Value
)
这只是一个片段,当csv来自每周更改时会更改为长度谢谢
答案 0 :(得分:0)
你想要这样的东西吗?
opaque
答案 1 :(得分:0)
您可以使用此方法获得结果。
$data_array = Array{};
$result_array = NULL;
foreach ($data_array as $value) {
$result_array[$value[0]] += $value[1];
}
答案 2 :(得分:0)
这不是最有效的方式,但它的工作方式与您希望的一样。
<?php
$testArr = array(
array('Name1', 1),
array('Name2',2),
array('Name1',3)
);
$newArr = array();
$tmp = array();
foreach($testArr as $i=>$row)
{
if( in_array($row[0], $tmp) )
{
$key = array_search($row[0], $tmp);
$newArr[ $key ][1] += $row[1];
}
else
{
array_push( $newArr, array($row[0], $row[1]) );
array_push( $tmp, $row[0] );
}
}
print_r($newArr);
?>
输出
Array
(
[0] => Array
(
[0] => Name1
[1] => 4
)
[1] => Array
(
[0] => Name2
[1] => 2
)
)
经过测试,请在此处查看phpFiddle