簡體   English   中英

PHP動態嵌套關聯數組

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM