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();
?>
问候,
斯特凡