簡體   English   中英

如何創建多維關聯數組

[英]How to create multi-dimensional associative array

我有這個示例表數據,它實際上具有ID,價格,更多內容,但是我想我可以使用此數據進行查詢,即時通訊使用PHP作為我的語言:

id   category  product       complement_type   option
 1   Pizza     Large Pizza   Bread             Brown bread
 2   Pizza     Small Pizza   Bread             White bread
 3   Pizza     Small Pizza   Ingredients       Olives
 4   Salads    Green Salad   Extras            Bacon
 5   Salads    Cesars Salad  Extras            Lettuce

我已經有查詢此表,

現在我想將ir轉換為這種類型的數組

array(
 [Pizza] => array(
             [Large Pizza] => array(
                                [Bread] => Brown Bread
                              )
            ),
            array(
             [Small Pizza] => array(
                                [Bread]        => White Bread
                                [Ingredients]  => Olives
                              ),
            )
 ),
 [Salads] => array(
             [Green Salad] => array(
                               [Extras]         => Bacon
                              )
             [Cesar Salad] => array(
                               [Extras]         => Lettuce
                              )
 )

該數組是我想要實現的,但是我無法正確完成

我知道我必須使用for循環來循環它,也許添加一個while循環來獲取類別中的更改,但是我只是似乎沒有找到實現它的方法,關於如何實現這一點的任何想法?

我很欣賞任何想法

再次,即時通訊使用PHP

謝謝

編輯:這是指向數據即時獲取的鏈接,雖然有點不同,但原理相同

https://dobleslash.com/TakeEatEasy/API/getRest?id=1

首先:您的原始數組(已發布,是注釋),如果是對象數組:此初步注意事項是理解語法-> ,否則僅閱讀您的主要問題就難以理解。

假設您的表結果存儲在數組$array ,則可以按以下方式嘗試:

$result = array();
foreach( $array as $row )
{
    if( !isset( $result[ $row->category ] ) ) 
    {
        $result[ $row->category ] = array();
    }
    if( !isset( $result[ $row->category ][ $row->product ] ) )
    {
        $result[ $row->category ][ $row->product ] = array();
    }
    $result[ $row->category ][ $row->product ][ $row->complement_type ] = $row->option;
}

首先,我初始化一個空數組。 然后-通過一個foreach循環,我處理$array每個元素,並且-如果結果數組中不存在主鍵(產品),則將其創建為空數組; 然后我對類別子項(大披薩等)執行相同的操作。 最后,我添加補碼類型。

評估演示

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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