0
我正在嘗試使用lambda語法在PHP中使用數組過濾器函數編寫排序/過濾器腳本。在PHP中過濾數組
這實現了我想做的事,但它看起來像它可以進行優化:
$offersReceivedProcessedByItem = array();
foreach ($this->currentSessionUser->items as $item) {
$receivedOffersOnItem = array();
foreach ($offersReceived as $offerReceived) {
if ($offerReceived->item->id === $item->id) {
$receivedOffersOnItem[$offerReceived->id] = $offerReceived;
}
}
offersReceivedProcessedByItem[$item->id] = $receivedOffersOnItem;
}
(對於用戶的每一項,過濾通過offersReceived陣列和報價添加到一個新的數組,如果它有一個平等的ID,如果這是有道理的!!)。
這裏就是我想:
$offersReceivedProcessedByItem = array();
foreach ($this->currentSessionUser->items as $item) {
$receivedOffersOnItem = array_filter($item->offers, function($offer){
return $offer->item->id === $item->id;
});
$offersReceivedProcessedByItem[$item->id] = $receivedOffersOnItem;
}
但我收到$項目是不確定的,我希望它是封閉的範圍,所以我嘗試通過$項目作爲另一個說法,但隨後我得到'缺少論點2'。
我嘗試過使用內置於Fuel中的關係方法,但PHP吃了太多內存並失敗。
任何幫助?我錯了什麼?
一個鏈接,就是它!我認爲這是我的Javascript經驗範圍問題,但我從來沒有聽說過'使用'聲明。還有很多關於PHP的知識。謝謝您的幫助! – 2013-02-14 21:36:13