Я пытаюсь найти разницу между массивом списка всех видов деятельности и списком всех выполненных действий, которые приведут к списку всех действий, которые еще не выполнены.Многомерный массив Diff Рекурсивный не работает в PHP
вот мой PHP код для этих 2 массивов:
$sql=" SELECT * FROM milestone
WHERE month BETWEEN '$age' - 3 AND '$age' + 3
ORDER BY month";
$result=mysqli_query($conn, $sql);
while ($row = mysqli_fetch_array($result)) {
$allMilestone[] = $row;
}
$sql=" SELECT milestone.* FROM `milestone`
LEFT JOIN `milestone_transaction`
ON milestone.stone_id = milestone_transaction.stone_id
WHERE milestone_transaction.registration_no = 1111;";
$result=mysqli_query($conn, $sql);
while ($row = mysqli_fetch_array($result)) {
$checkedMilestone[] = $row;
}
Я использую пользовательскую функцию для массива рекурсивной разницы, представленной несколько источников, как recursive array_diff()?, но он не работает для моего случая.
Я также print_r выход для allMilestone, checkedMilestone & список:
$allMilestone: Array ([0] => Array ([0] => fm1 [stone_id] => fm1 [1] => 3 [month] => 3 [2] => Follow past midline [criteria] => Follow past midline) [1] => Array ([0] => fm2 [stone_id] => fm2 [1] => 3 [month] => 3 [2] => Sit look for yarn [criteria] => Sit look for yarn) [2] => Array ([0] => gm1 [stone_id] => gm1 [1] => 3 [month] => 3 [2] => Prone lifts head [criteria] => Prone lifts head) [3] => Array ([0] => gm2 [stone_id] => gm2 [1] => 3 [month] => 3 [2] => Sit head steady [criteria] => Sit head steady) [4] => Array ([0] => hl1 [stone_id] => hl1 [1] => 3 [month] => 3 [2] => Vocalises, not cry [criteria] => Vocalises, not cry) [5] => Array ([0] => hl2 [stone_id] => hl2 [1] => 3 [month] => 3 [2] => Laughs [criteria] => Laughs) [6] => Array ([0] => ps1 [stone_id] => ps1 [1] => 3 [month] => 3 [2] => Smile responsively [criteria] => Smile responsively) [7] => Array ([0] => ps2 [stone_id] => ps2 [1] => 3 [month] => 3 [2] => Resists toy pull [criteria] => Resists toy pull))
$checkedMilestone: Array ([0] => Array ([0] => hl1 [stone_id] => hl1 [1] => 3 [month] => 3 [2] => Vocalises, not cry [criteria] => Vocalises, not cry) [1] => Array ([0] => ps1 [stone_id] => ps1 [1] => 3 [month] => 3 [2] => Smile responsively [criteria] => Smile responsively))
the difference array: Array ([0] => Array ([0] => fm1 [stone_id] => fm1 [2] => Follow past midline [criteria] => Follow past midline) [1] => Array ([0] => fm2 [stone_id] => fm2 [2] => Sit look for yarn [criteria] => Sit look for yarn) [2] => Array ([0] => gm1 [stone_id] => gm1 [1] => 3 [month] => 3 [2] => Prone lifts head [criteria] => Prone lifts head) [3] => Array ([0] => gm2 [stone_id] => gm2 [1] => 3 [month] => 3 [2] => Sit head steady [criteria] => Sit head steady) [4] => Array ([0] => hl1 [stone_id] => hl1 [1] => 3 [month] => 3 [2] => Vocalises, not cry [criteria] => Vocalises, not cry) [5] => Array ([0] => hl2 [stone_id] => hl2 [1] => 3 [month] => 3 [2] => Laughs [criteria] => Laughs) [6] => Array ([0] => ps1 [stone_id] => ps1 [1] => 3 [month] => 3 [2] => Smile responsively [criteria] => Smile responsively) [7] => Array ([0] => ps2 [stone_id] => ps2 [1] => 3 [month] => 3 [2] => Resists toy pull [criteria] => Resists toy pull))
Можете ли вы помочь мне, указывая, где я пошел не так, как люди говорили, что пользовательская функция работает должным образом для них.
Я хотел решить это, используя один mysql-запрос, но я не могу найти правильную логику. Но ваш путь позволяет мне делать то, что я хочу. Большое спасибо за помощь! –