【发布时间】:2017-09-11 08:13:29
【问题描述】:
我正在创建以下数组,其中包含所有产品及其所有类别:
$result = $wpdb->get_results("SELECT product_nr, category FROM erp_product_categories",ARRAY_A);
$product_categories = array();
foreach($result as $row){
$product_categories[$row["product_nr"]][] = $row["category"];
}
(product_nr 为整数,category 为字符串)
然后我想检查产品的一个类别是否与另一个变量匹配,如果是,则返回 true:
foreach($product_categories[$ean] as $product_categorie) {
$manages_post = in_array( $product_categorie, $this->term_link_conditions );
if($manages_post == true){
break;
}
}
return $manages_post;
但我得到了错误
为 foreach() 提供的参数无效
难道不能只循环遍历具有特定键的数组元素吗?
编辑: 数组是这样的
Array
(
[10001] => Array //product_nr
(
[0] => 1 //category
[1] => 4 //category
)
[10002] => Array
(
[0] => 1
[1] => 20
)
//...
)
【问题讨论】:
-
$product_categories和$ean的值是多少? -
表示数组为空或不存在。
-
$product_categorie实际上是一个类别数组?你的命名太混乱了。它也不包含安全网。例如,如果产品没有类别,它不会出现在数组中,即使我希望产品 id 存在,但内容是类别的空数组。最后但同样重要的是,您是否考虑过仅查询$ean的类别,而不是获取所有类别然后在 PHP 代码中过滤它们? -
什么是 foreach 中的 $ean($product_categories[$ean] as $product_categorie) {
-
@Shibon $ean 与 'product_nr' 相同
标签: php multidimensional-array foreach