获取数组的数字部分

时间:2015-10-28 04:07:06

标签: php arrays multidimensional-array yii2

我有一个像这样的数组

print_r($_POST['Receipt']['name']);die();

将显示一个数组

Array ( [Donations] => Array ( [name] => Donations ) [500] => Array ( [amount] => 500 ) [Others] => Array ( [name] => Others ) [600] => Array ( [amount] => 600 ) )

我怎样才能获得数值? 我试过这样的事情

foreach (  $_POST['Receipt']['name'] as $id => $prop )
            {

                if(is_numeric($_POST['Receipt']['name'][$id]))
                {
                    $total_cash= $total_cash + $_POST['Receipt']['name'][$id];
                }   

            }print_r($total_cash);die();

但我的值为零而不是1100.我想得到数值的总和。

1 个答案:

答案 0 :(得分:1)

首先:您应该考虑在此重新考虑您的数据结构。它非常多余。以下类型的数组将起到相同的作用而不会膨胀:

Array ( Donations, 500, Others, 600)

在我看来,表示数据含义的结构看起来像

Array ( [Donations]=> 500, [Others]=> 600)

你的方法基本上没有错。但是你应该在添加变量之前初始化变量$ total_cash。

根据您现在拥有的数据结构,我会这样:

<?php
$total_cash = 0;
foreach ($my_array as $item){
    if (isset($item['amount'])){
        $total_cash += $item['amount'];
    }
}
print_r($total_cash);
die();
?>

此致

的Stefan