[英]PHP Dynamic Nested Associative Array
我有一个关联数组,它是使用数据库中的值动态生成的。 当我打印整个数组时,当我们放置print_r($ array)时,它会给出类似的内容。
Array ( [95a5c80811239526fb75cbf31740cc35] => Array ( [product_id] => 2324) )
当我这样回声时
echo $array['95a5c80811239526fb75cbf31740cc35']['product_id'];
它给了我产品编号。 但是问题是,代码“ 95a5c80811239526fb75cbf31740cc35”每次都会动态更改。 无论该代码如何,我都想回显产品ID。
我试过了
$array[]['product_id'];
$array['']['product_id'];
但是没有用。 谁能帮我? 请问我是否有任何疑问。
在这种情况下,可以使用reset()
:
$array = array(
'95a5c80811239526fb75cbf31740cc35' => array( // dynamic
'product_id' => 2324
),
);
$value = reset($array); // set pointer to first element
echo $value['product_id']; // 2324
假设代码始终是数组中的第一个元素:
$array[0]['product_id'];
如果您集体希望获得所有产品ID:
foreach($array as $product){
$productIds[] = $product['product_id'];
}
// $productIds is now what $array was, but without the codes, so the product_id's are the first elements.
您可以为此使用每个,以便获得产品ID的值
$array = Array ( [95a5c80811239526fb75cbf31740cc35] => Array ( [product_id] => 2324) )
foreach($array as $product){
echo $product['product_id'];
}
这将获得您想要的o / p
根据您的情况,有几种可能的解决方案:
$array = array_shift(array_values(
Array(
'95a5c80811239526fb75cbf31740cc35' =>
Array(
'product_id' => 2324
)
)));
echo $array['product_id']; // 2324
另一种解决方案,可能更有效:
echo array_shift(array_slice($array, 0, 1)); // 2324
对于PHP 5.4+,您可以使用:
echo array_values($array)[0]; // 2324
如果您在使用关联数组时遇到问题,则可以先将其转换为数值,如下所示
$arr=array( 'first' => array( 'product_id' => 2324) );
$arrr=array_values($arr);
echo $arrr[0]['product_id'];
输出:
2324
希望对您有所帮助,并了解有关array_values的信息
$array[0]['product_id'];
应该做到的。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.