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

基于第一个值php在php中添加值,php,arrays,Php,Arrays,我有一个数组,如下所示,其中一些行将具有相同的名称。我想做我想做的事,但却一事无成 对于foreach循环,我将如何遍历每个循环,将相同名称的值添加到一个新数组中 谢谢:) 这只是一个片段,当它来自每周更改的csv时,它将更改为长度。谢谢你想要这样的内容吗 $newData = []; foreach ($array as $item) { $newData[$item[0]][] = $item[1]; } var_dump($newData); 您可以通过这种方法获得结果 $dat

我有一个数组,如下所示,其中一些行将具有相同的名称。我想做我想做的事,但却一事无成

对于foreach循环,我将如何遍历每个循环,将相同名称的值添加到一个新数组中

谢谢:)


这只是一个片段,当它来自每周更改的csv时,它将更改为长度。谢谢你想要这样的内容吗

$newData = [];
foreach ($array as $item) {
    $newData[$item[0]][] = $item[1];
}
var_dump($newData);

您可以通过这种方法获得结果

$data_array = Array{};

$result_array = NULL;

foreach ($data_array as $value) {
    $result_array[$value[0]] += $value[1];
}

这还不是最有效的方法,但它的工作方式是你想要的

<?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);

?>

测试工作,检查这里,

这工作非常出色!代码中是否有除掉总次数的方法,但它添加的次数是多少?例如,如果Name1的总数是10,但它有Name1的五倍,那么结果将是2Yes。我为此运行了一个新的foreach,它将划分事件总数和发生次数。检查一下。
<?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
        )
)