【发布时间】:2017-01-22 14:21:34
【问题描述】:
我正在尝试将 5 个日期 ($completion_date) 放入一个数组中我有一个列表我正在循环通过将 $completion_date 传递给下面的函数在列表中有多个相同 $completion_date 的实例但我只想要数组$completion_dates = []; 中的每一个,所以每次我使用array_search($completion_date, $completion_dates); 搜索数组时,如果当前$completion_date 不存在,我想将它添加到数组中,如果是我想修改$completions 和$payouts 在各自数组中的相同位置。我的问题是 array_push 似乎没有推送所有日期?只有一个?
我已经检查了 array_push 所在的 if 语句,并且它每次都在运行 else 子句(因为 array_push 不能改变它);
function sortResults($completion_date, $payout){
global $completion_dates, $completions, $payouts;
$completion_dates = [];
$completions = [0,0,0,0,0]; // not in use
$payouts = [0,0,0,0,0]; // not in use
// check is $completion_date is in $completion_dates array and get position if so.
$position = array_search($completion_date, $completion_dates);
if ($position) {
// update $payouts and $completions @ same $position.
}else{
// add $completion_date to $completion_dates array.
array_push($completion_dates, $completion_date);
}
}
var_dump($completion_dates);
输出:array(1) { [0]=> string(10) "22/01/2017" }
但也应该输出其他四个日期"18/01/2017"、"19/01/2017"、"20/01/2017"、"21/01/2017"?
我正在循环的数据正在转义日期,就像{"completion_date":"18\/01\/2017","0":"18\/01\/2017","payout":"13.20","1":"13.20"} 不确定它是否重要,它真的不应该吗?
【问题讨论】:
标签: php arrays array-push