【发布时间】:2021-03-29 08:14:34
【问题描述】:
我有这个多维数组,我需要找出任何 SKU 的销售量。
我该怎么办?
[Orders] => Array(
[0] => Array(
[transaction_id] => xxxx
[date] => 1616277653
[currency] => EUR
[items] => Array(
[0] => Array(
[title] => Title
[quantity] => 200
[price] => 2.1
[sku] => 1T.810BK
)
[1] => Array(
[title] => Title
[quantity] => 250
[price] => 1.78
[sku] => 1090.005BK
)
)
)
[1] => Array(
[transaction_id] => 78079
[date] => 1616597838
[currency] => EUR
[items] => Array(
[0] => Array
(
[title] => title
[quantity] => 3
[price] => 118.3
[sku] => 1.DIYBOX.ULT.638RE
)
)
)
)
目前我正在使用一个内部带有array_walk_recursive 的函数来提取关键 SKU 的所有值。
但是这样我就不能把它和数量的价值联系起来了。
所以这不可能是解决方案,除非我不能在函数内部传递 2 个 Key 变量。可以吗?
这是我此刻使用的功能:
function array_value_recursive($key, array $arr){
$val = array();
array_walk_recursive($arr, function($v, $k) use($key, &$val){
if($k == $key) array_push($val, $v);
});
return count($val) > 1 ? $val : array_pop($val);
}
array_value_recursive('sku', $GetPendingOrders_obj);
我不确定传递两个键是否是理想的解决方案。 您认为我可以如何解决查找已售 SKU 数量的问题?
【问题讨论】:
-
请在您的问题中准确表达您想要的输出。请始终将您的样本数组数据呈现为
var_export()的输出。您的样本数据可能应至少包含一个重复的 SKU,以便立即识别错误的答案。 -
您的标题没有很好的可搜索性。可能类似于“在多维数组的第四级中对数据进行分组和求和”。
-
嗨@mickmackusa,我不确定哪种方法是导出数据以查找已售 SKU 数量的最佳方法。可能是另一个多维数组,但不确定。你有什么想法吗?
-
谢谢@mickmackusa 我将更改磁贴,并且我将使用此关键字进行谷歌搜索
-
你的样本数组似乎有一个固定的结构,所以提取你想要的值应该没有问题。您不需要递归和动态访问。两个嵌套循环(一个在订单上,一个在订单项上)应该可以解决问题。
标签: php arrays multidimensional-array