我有一个多维数组,其深度不确定或者取决于多少个类别&子类别(&子子类别) 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