同じ配列の内部ループがありますが、内部ループでいくつかの要素を削除すると、新しい配列がメイン配列に割り当てられますが、メインループのインデックスがまだ変更されていないという問題が発生します!
foreach ($newsletters as $index=>$mainNewsletterObj) {
// var_dump($newsletters); // it prints new DATA !
// the problem is here !
echo 'up index is '.$index .'<br/>'; // it prints old index!!!!!!!!!!
// make a copy of main array
$newslettersArray = $newsletters;
//inner loop
foreach ($newslettersArray as $key => $newsletterObj) {
if ($newsletterObj['month'] == 3 );
unset($newslettersArray[$key]); //remove element
} else
{
// make a new array of modified one to start index from 0
$newslettersArray1 = array_values($newslettersArray); // to start index from 0
// assign new modified array to the original one
$newsletters = $newslettersArray1;
}
} // end inner loop
$index=0;
echo 'down index is '.$index .'<br/>'; // it prints 0
} // end of outer loop
どんな助けでも大歓迎です!