【发布时间】:2021-04-02 09:39:33
【问题描述】:
我正在循环通过两个数组。 $wooProducts 和 $data。两个数组看起来一样,都包含 WooCommerce 产品。
我的目标是循环通过$wooProducts 并从$data 中删除匹配的产品。
除了unset() 部分外,一切正常。知道如何使它工作吗?我也试过这个:unset($data[$matchedProduct]);
// Find function
function find($array, $key) {
foreach ($array as $product) {
if ($product["Name"] == $key) {
return $product;
}
}
}
$updateProducts = [];
// Check if product already exist
foreach ($wooProducts as $wooProduct) {
$matchedProduct = find($data, $wooProduct->post_title);
if ($matchedProduct) {
array_push($updateProducts, $matchedProduct);
unset($data[$wooProduct]); // <---- Not working
}
}
【问题讨论】:
-
我不太了解 php,但是当您将 foreach $wooProducts 作为 $wooProduct 执行时,变量 $wooProduct 可能是一个值而不是索引。如果我的数组是 $wooProcuts ['cat', 'dog'] 我的猜测是 unset(data[wooProcuct]) 就像说 unset(data['cat']) 当你真的想要 unset(data[0])
-
你尝试用 value 取消设置,需要用 key 取消设置,wooProduct 也是对象。对象不能是数组中的键