我正在试图找出为什么我无法使用此语句访问follow数组:
var_dump($thevar[0]['product_id']);
Array
(
[d142d425a5487967a914b6579428d64b] => Array
(
[product_id] => 253
[variation_id] =>
[variation] =>
[quantity] => 1
[data] => WC_Product Object
(
[id] => 253
[product_custom_fields] => Array
(
[_edit_last] => Array
(
[0] => 1
)
[_edit_lock] => Array
(
[0] => 1345655854:1
)
[_thumbnail_id] => Array
(
[0] => 102
)
但是,我可以使用动态创建的数组名称访问'product_id':
print_r($thevar['d142d425a5487967a914b6579428d64b']['product_id']);
问题是,我不知道动态名称将会是什么......
答案 0 :(得分:2)
这种情况有几种选择。
您可以使用reset
,next
,key
和/或each
来迭代数组(可能部分)。
例如,无论密钥如何都要抓取第一个项目:
$item = reset($thevar);
有时候能够以数字方式索引数组只是方便,并且小的性能影响不是问题。在这种情况下,您可以使用array_values
重新编制索引:
$values = array_values($thevar);
$item = $values[0]; // because $values is numerically indexed
这适用于单个值以及它可以工作更多,但它可能会给代码的读者留下错误的印象。
foreach($thevar as $item) {
// do something with $item
}
答案 1 :(得分:1)
如果数组键是动态的,您可能会发现PHP函数array_keys()很有用。
它将返回数组中使用的键数组。然后,您可以使用它来访问数组中的特定元素。
请点击此处了解更多信息:
答案 2 :(得分:0)
因为PHP数组是关联的,所以你必须通过密钥访问它们。
但您可以使用reset($thevar)
获取第一项。
array_values($thevar)[0]
或者,如果你觉得有点矫枉过正,你也可以使用array_keys()
并使用[0]
元素来解决这样的元素:
$thevar[ array_keys($thevar)[0]]