簡體   English   中英

PHP-如何將“樹數組”轉換為數組

[英]php - how to convert 'tree-array' to array

我得到了像這樣的tree-array

在此處輸入圖片說明

現在,我想將其轉換為這樣的數組:

array(
      1 => array('id'=>'1','parentid'=>0),
      2 => array('id'=>'2','parentid'=>0),
      3 => array('id'=>'3','parentid'=>1),
      4 => array('id'=>'4','parentid'=>1),
      5 => array('id'=>'5','parentid'=>2),
      6 => array('id'=>'6','parentid'=>3),
      7 => array('id'=>'7','parentid'=>3)
      );

我已經編寫了如下代碼:

private function _getOrderData($datas)
{
    $_data = [];
    static $i = 0;
    foreach ($datas as $data) {
        $i++;
        $rows = ['id' => $data['id'], 'pid' => isset($data['children']) ? $data['id'] : 0, 'menu_order' => $i];
        if(isset($data['children'])) {
            $this->_getOrderData($data['children']);
        }
        $_data[] = $rows;
    }
    return $_data;
}

但這沒用

哭~~

如何修復代碼以獲取數組? 謝謝〜

順便說一句,我的英語是台球。

據我所不知,您是否可以閱讀我對問題的描述。

我已經解決了這個問題,Thx〜

private function _getOrderData($datas, $parentid = 0)
{
    $array = [];
    foreach ($datas as $val) {
        $indata = array("id" => $val["id"], "parentid" => $parentid);
        $array[] = $indata;
        if (isset($val["children"])) {
            $children = $this->_getOrderData($val["children"], $val["id"]);
            if ($children) {
                $array = array_merge($array, $children);
            }
        }
    }
    return $array;
}

數組看起來像: array

暫無
暫無

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

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