基于第一个值php在php中添加值

时间:2016-03-21 10:32:52

标签: php arrays

我有一个如下所示的数组,其中一些行具有相同的名称。我无法快速尝试做我想做的事。

使用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来自每周更改时会更改为长度谢谢

3 个答案:

答案 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