从特定键的嵌套数组行中收集所有值
Collect all values from nested array row of specific key
需要创建一个列表,其中包含存储在特定键 (product_id) 的数组行中的所有值。目前,对我的 $bestsellers 变量执行 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);
供将来参考,array_column
will work for this in PHP 7,因此您必须使用 PHP 5.
对于PHP7,你的代码
$ids = array_column($bestsellers, 'product_id');
会做你想做的事。
需要创建一个列表,其中包含存储在特定键 (product_id) 的数组行中的所有值。目前,对我的 $bestsellers 变量执行 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);
供将来参考,array_column
will work for this in PHP 7,因此您必须使用 PHP 5.
对于PHP7,你的代码
$ids = array_column($bestsellers, 'product_id');
会做你想做的事。