从特定键的嵌套数组行收集所有值
需要创建一个由存储在特定键(Product_Id)的数组行中的所有值组成的列表。目前,对我的$BESTELLERS变量执行print_r会产生以下数组:
Array
(
[0] => stdClass Object
(
[product_id] => 178
[order_item_qty] => 9
)
[1] => stdClass Object
(
[product_id] => 233
[order_item_qty] => 4
)
[2] => stdClass Object
(
[product_id] => 179
[order_item_qty] => 1
)
)
其他SO答案引导我尝试:
$ids = array_column($bestsellers, 'product_id');
.但这产生了一个空数组,我猜是因为我试图获取的行嵌套在那里?考虑到这一点,我试着
foreach($bestsellers as $bestseller) {
$ids = array_column($bestsellers, 'product_id');
}
.这根本没有产生任何结果。 希望有人能帮我指出我哪里出了问题。谢谢!
解决方案
嵌套值是对象,而不是数组(您在输出中看不到stdClass Object
吗?)array_column
用于二维数组。您需要使用对象语法访问属性。
$ids = array_map(function($x) { return $x->product_id; }, $bestsellers);
相关文章