Php 获取数组的数字部分

Php 获取数组的数字部分,php,arrays,multidimensional-array,yii2,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 ) )

我有一个这样的数组

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

但是我得到的值是0而不是1100。我想得到数值的总和。

首先:你应该考虑重新考虑一下这里的数据结构。这是相当多余的。以下类型的阵列可以在不膨胀的情况下达到相同的目的:

Array ( Donations, 500, Others, 600)
在我看来,表示数据含义的结构如下

Array ( [Donations]=> 500, [Others]=> 600)
你的方法基本上没有错。但是在添加变量$total\u cash之前,应该初始化它

对于您现在拥有的数据结构,我将如下所示:

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

问候,

斯特凡