我被困在如何计算数组中的项
代码
// Product ID's to Search
$deposit_items = array( '4359', '4336', '4331', '4320' );
// Loop through the Cart Items
foreach ( $cart_object->get_cart() as $item_values ) {
// Check if the cart contains items with the matching Product ID's
if( in_array( $item_values['product_id'], $deposit_items )) {
// Count number of products in Cart that have matching Product ID's
}
}
我需要返回数组中具有$deposit_items
中所列产品ID的项数
5条答案
按热度按时间fgw7neuy1#
就像这样
例如
产出
Sandbox
它可以被压缩(Golfed)成这样的一行:
仅供参考
http://php.net/manual/en/function.array-column.php
http://php.net/manual/en/function.array-intersect.php
数组列,使用我的(有点简单)例子,获取一个大的多维数组并返回一个单列:
变成了(我加了333,只是为了好玩)
基本上和你的
$deposit_items
相同,一旦它们相同,我们可以使用数组求交,来找到数组1中所有出现在第二个数组中的元素,在这种情况下,我们需要上面的数组元素,只要它们在$deposit_items
中,一旦我们有了这些元素,就很简单的用count来计算它们。Sandbox
为了进一步说明
产出
然后
产出
然后伯爵就很直接了。
巧合的是,如果你想做相反的事情,计算不在
$deposit_items
中的项目,你只需用array_diff
替换array_intersect
。Not in Deposit Items
如果你用arraydiff来翻转数组,你会得到不在购物车里的存款项目的数量。
Not in cart
干杯!
oiopk7p52#
试试看
fiei3ece3#
如果
$item_values['product_id']
本身是一个数组,那么您可以尝试如下操作:f5emj3cl4#
我按照以下答案https://stackoverflow.com/a/52791909/5864034执行此操作
irlmq6kh5#
这家伙想得到吴电子商务购物车的项目数量,所以这是解决方案。