私は配列に5つの日付($completion_date
)を取得しようとしています私はリストの中に同じ$completion_date
の複数のインスタンスがある$completion_date
を渡すことを通してループしているリストがありますが、それぞれ配列$completion_dates = [];
ですので、array_search($completion_date, $completion_dates);
を使用して配列を検索するたびに、現在の$completion_date
が存在しない場合は配列に追加したい場合は、$completions
と$payouts
をそれぞれの配列の同じ位置に変更します。私の問題はarray_pushはすべての日付をプッシュしていないようですか?唯一?配列プッシュが関数で機能していませんか? PHP
そして、array_pushが入っているif文をチェックしました。これは、array_pushがそれを変更しようとしていないため、毎回else節を実行しています。
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" }
しかし、出力すべき他の4つの日付"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"}
ないような日付を脱出さをループしていたデータ?それが問題であれば本当にすべきではありませんか?
これはうまくいきません。また、関数の外部で開始するときにグローバル変数を宣言して、それらのトレースを保持するようにするのは明らかです。グローバル$ completion_dates = array(); – cpugourou
外部の配列であっても、グローバルは機能しないようですか?上のコメントの助けを借りても。 – Benjamin
http://pastebin.com/raw/RFuxAKyこれも機能しません。 (呼び出されたとき) – Benjamin