'PHP: use for loop/foreach inside array_filter [duplicate]
I tried to use for-loop/foreach inside array_filter(). but the for loop/foreach doesn't work inside array_filter(). How can I use for-loop/foreach inside array_filter()?
$bookingData = array_values(array_filter($jsonBooking, function($bookingItem) {
foreach ($orderData as $orderItem) {
if ($bookingItem['order_id'] === $orderItem['id']) {
return $bookingItem;
}
}
}
Solution 1:[1]
Callback inside array_filter must returns bool (as condition to filter), be but you return an object.
This should work.
$bookingData = array_values(array_filter($jsonBooking, function($bookingItem) use ($orderData) {
foreach ($orderData as $orderItem) {
if ($bookingItem['order_id'] === $orderItem['id']) {
return true;
}
}
return false;
}
UPDATED: don't forget use statement
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 |
