[英]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.