php如何获取相同的值并将其放入另一个数组中

时间:2014-02-16 09:00:38

标签: php

我在网上搜索但找不到解决问题的方法。 我的问题是:

1 - 如何获得具有相同值的数组并将其放入另一个数组中:

2 - 如何使用相同的tax_due_date获取总发票金额总额,表示使用相同日期添加总发票金额的值并将其放入一个变量中。

 Array
(
[0] => Array
    (
        [gross_invoice_amount] => 10000
        [tax_due_date] => 2014-04-04
    )

[1] => Array
    (
        [gross_invoice_amount] => 4000
        [tax_due_date] => 2014-09-04
    )

[2] => Array
    (
        [gross_invoice_amount] => 1000000
        [tax_due_date] => 2011-04-04
    )

[3] => Array
    (
        [gross_invoice_amount] => 100000
        [tax_due_date] => 2014-04-04
    )

[4] => Array
    (
        [gross_invoice_amount] => 30000
        [tax_due_date] => 2014-04-04
    )

[5] => Array
    (
        [gross_invoice_amount] => 50000
        [tax_due_date] => 2014-04-04
    )

)

我的问题是如何获得具有相同日期的数组并将其放入另一个数组意味着除以它 成块。

2 个答案:

答案 0 :(得分:0)

我不确定你想要将它分成多少块,但要遍历整个数组并访问存储在其中的数据,请使用foreach

$gross_invoice_amounts = array();
$tax_due_dates = array();

foreach ($myArray as $value)
{
   $gross_invoice_amounts[] = $value['gross_invoice_amount'];
   $tax_due_dates[] = $value['tax_due_date'];
}

Foreach将循环整个数组($myArray),在这种情况下,当前值将存储在$value中(您也可以使用$key => $value来访问当前键)。在循环内部,您可以将值存储在单独的数组中([]可以将其分配给下一个空闲位置。)

答案 1 :(得分:0)

下面的第一个代码块。它做什么,它将具有相同截止日期的所有记录放入一个数组$new_array。该变量包含或将包含二维数组。

第一个维度包含不同的截止日期,每个维度包含我们放入的记录数组。

$main_array; // let's say, everything is stored here
$new_array = array(); // we will use this to store our grouped data

foreach($main_array as $data)
{
    $new_array[$data['tax_due_date']][] = $data;
}

计算每个截止日期的总和:

foreach($new_array as $due => $datas)
{
    $count = 0;
    for($i = 0; $i < count($datas); $i++)
    {
        $count += $datas[$i]['gross_invoice_amount'];
    }
    echo "Total Amount Due for the date $due: ".$count;
}