我有一個多維數組,其深度不確定或者取決於多少個類別&子類別(&子子類別) magento網站,因爲我打電話功能$product->getCategoryIds()
。檢查多維數組中的每個子數組是否包含元素
現在讓我們假設我得到的所有產品(這是在車/結帳加入)類樹的層次結構,多維數組象下面這樣:
Array
(
[0] => Array
(
[0] => 40
)
[1] => Array
(
[0] => 40
)
[2] => Array
(
)
[3] => Array
(
)
[4] => Array
(
[0] => 16
)
[5] => Array
(
[0] => 16
)
)
但因爲它是一個ecomerce網站的類別層次結構,可以可以想象,網站可以有任何深度的類別,子類別,子類別等等。未知的產品類別層次結構,因此未知深度類別ID數組。
現在我的困惑和查詢,如何檢查每個子數組和/或子子數組是否包含特定的類別ID(例如40或16)或不使用各種PHP數組的組合函數和儘可能少的循環?
我能想到的所有嵌套for/foreach
循環有性能開銷,所以我正在尋找更好的替代方案。
您是否需要知道該物品在哪裏或只有在那裏? – Andreas
只需要知道每個子數組或子數組是否包含該項(在我的情況下是'category-id')。如果可以找到物品的位置,那麼真的很棒,但是「如果它存在或不存在」也是非常有用的。 – VST
如果可以通過展平數組並使用in_array來完成。這是第一步。我猜如果這是真的,你需要一個遞歸函數來查找位置。 https://stackoverflow.com/questions/4128323/in-array-and-multidimensional-array https://stackoverflow.com/questions/526556/how-to-flatten-a-multi-dimensional-array-to-simple - 酮中的PHP – Andreas