在PHP中过滤数组数据并添加一个字段
我有以下数组:在PHP中过滤数组数据并添加一个字段,php,arrays,foreach,Php,Arrays,Foreach,我有以下数组: Array ( [data] => Array ( [0] => Array ( [amount] => 16800 [created] => 1438114651 [status] => pending )
Array
(
[data] => Array
(
[0] => Array
(
[amount] => 16800
[created] => 1438114651
[status] => pending
)
[1] => Array
(
[amount] => 16800
[created] => 1435854159
[status] => available
)
[2] => Array
(
[amount] => 3300
[created] => 1435711645
[status] => available
)
)
)
我需要仅使用可用状态和两个创建日期之间的筛选此数组的金额之和
我需要为每个人设置密码吗
非常感谢您的帮助。您可能正在寻找以下内容:
function totalAmount($array, $start = 0, $end = 1E+11) {
$totalAvailable = 0;
foreach($array as $item) {
if(
$item['status'] == 'available'
&& $item['created'] >= $start
&& $item['created'] < $end
) $totalAvailable += $item['amount'];
}
return $totalAvailable
}
$sum = totalAmount($foo['data'], $unixtimeStart, $unixtimeEnd);
function totalAmount($array,$start=0,$end=1E+11){
$totalAvailable=0;
foreach($数组作为$项){
如果(
$item['status']=='available'
&&$item['created']>=$start
&&$item['created']<$end
)$totalAvailable+=$item['amount'];
}
返回$totalAvailable
}
$sum=totalAmount($foo['data'],$unixtimeStart,$unixtimestend);
我使用=
作为启动条件,但如果需要,您可以进行调整。
此外,开始和结束参数现在是可选的。请尝试此选项
$data= Array
(
[data] => Array
(
[0] => Array
(
[amount] => 16800
[created] => 1438114651
[status] => pending
)
[1] => Array
(
[amount] => 16800
[created] => 1435854159
[status] => available
)
[2] => Array
(
[amount] => 3300
[created] => 1435711645
[status] => available
)
)
)
$createdFrom = ...; // from date
$createdTo=...; // to date
$total=0;
foreach($data['data'] as $array)
if($array['created'] > $createdfrom && $array['created'] < $createdTo)
if($array['status']=="available")
$total+=$array['amount'];
echo $total;
$data=Array
(
[数据]=>阵列
(
[0]=>阵列
(
[金额]=>16800
[已创建]=>1438114651
[状态]=>挂起
)
[1] =>阵列
(
[金额]=>16800
[已创建]=>1435854159
[状态]=>可用
)
[2] =>阵列
(
[金额]=>3300
[已创建]=>1435711645
[状态]=>可用
)
)
)
$createdFrom=…;//从日期开始
$createdTo=…;//迄今为止
$total=0;
foreach($data['data']作为$array)
如果($array['created']>$createdfrom&&$array['created']<$createdTo)
if($array['status']==“available”)
$total+=$array['amount'];
echo$总计;
不,您不需要foreach。对于
来说,一个常规的也会起作用……过滤/多维关注点略有不同:但关于这些答案的好信息仍然有效:但是,没有数组和
?我个人更喜欢链接的答案。谢谢。这是第一部分。数据过滤呢?嗯,好的,以前没有看到日期范围标准部分。还有一个本机数组函数。。。我想到了阵列图。我错过了你问题的“中间”部分。更新函数的答案。效果非常好。我刚把你的
和
=
和