我有一个关联数组,它是用数据库中的值动态生成的。当我打印整个数组时,当我们输入print_r($array)时,它会给出如下结果:
Array ( [95a5c80811239526fb75cbf31740cc35] => Array ( [product_id] => 2324) )
当我像这样回显时,
echo $array['95a5c80811239526fb75cbf31740cc35']['product_id'];
给出了产品id。但问题是,代码'95a5c80811239526fb75cbf31740cc35'每次都动态变化。不管这个代码是什么,我都想要回显产品id。
I tried
$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.
可以使用for each for this这样就可以得到product Id的值
$array = Array ( [95a5c80811239526fb75cbf31740cc35] => Array ( [product_id] => 2324) )
foreach($array as $product){
echo $product['product_id'];
}
这将得到你想要的o/p
如果您在使用关联数组时遇到问题,那么您可以首先将其转换为数字,如下所示
$arr=array( 'first' => array( 'product_id' => 2324) );
$arrr=array_values($arr);
echo $arrr[0]['product_id'];
输出:2324
希望这对了解array_values有帮助请点击这里
根据您的情况,有以下几种可能的解决方案:
$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
$array[0]['product_id'];