第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

用于連接字符串的PHP遞歸函數(shù)

用于連接字符串的PHP遞歸函數(shù)

PHP
繁華開滿天機 2022-12-11 10:32:30
我正在嘗試制作這樣的 CSV 文件:id,value1,type2,type.type A3,type.type A.subtype 20004,type.type A.subtype 2000.subsubtype5,type.type A.subtype 2000.subsubtype.subsubsubtype6,type.type B這基本上是我們有父母和孩子的遞歸。到目前為止,我將它們存儲在數(shù)據(jù)庫中,我可以將它們提取為二維數(shù)組。當(dāng)我嘗試為 CSV 文件中的行創(chuàng)建字符串時,問題就來了。到目前為止,我有這個:private function _criteriaRec(&$result, $parentId, &$str) {            $relations = parent::getAll('objects_relations', 'id, object_id_2', ['object_id', $parentId, 'attr', 'criteria']); // here I'm extracting the objects from DB            if(!empty($relations)){                foreach ($relations as $relation) {                    $object = parent::get('objects', 'id, title', '', $relation['object_id_2']);                    $str .= ".$object[title]"; // I'm trying to make the string                    $result[] = array(                        'parent' => $parentId,                        'child' => $relation['object_id_2'],                        'title' => $object['title'],                        'str' => $str                    );                    $this->_criteriaRec($result, $relation['object_id_2'], $str);                    $str = ''; // I'm clearing the string at some point and I've moved this almost everywhere                }            }            return $result;        }結(jié)果是如下所示的數(shù)組:[0] => Array        (            [parent] => 17            [child] => 33            [title] => type            [str] => .type        )    [1] => Array        (            [parent] => 33            [child] => 34            [title] => subtype B            [str] => .type.subtype B        )    [2] => Array        (            [parent] => 33            [child] => 35            [title] => subtype A            [str] => .subtype A        )    [3] => Array        (            [parent] => 35            [child] => 36            [title] => subsubtype            [str] => .subtype A.subsubtype        ).......我對 csv 文件的制作沒有問題,但對字符串的嵌套連接沒有問題。該字符串將構(gòu)建一個 D3 樹圖,這是首選格式,因為我無法控制它。我錯過了一些東西,但在這一點上,我不確定是什么。
查看完整描述

1 回答

?
慕妹3242003

TA貢獻1824條經(jīng)驗 獲得超6個贊

這很難測試,但我認(rèn)為問題在于你一直在添加$str。所以每次循環(huán),你都會在上面添加下一個級別的字符串,最終你會重置它。


而不是那樣做,這需要$str并添加額外的部分,將它分配給一個新的字符串并使用這個值,包括將它傳遞到下一個級別......


private function _criteriaRec(&$result, $parentId, $str) {


    $relations = parent::getAll('objects_relations', 'id, object_id_2', ['object_id', $parentId, 'attr', 'criteria']); // here I'm extracting the objects from DB

    if(!empty($relations)){

        foreach ($relations as $relation) {

            $object = parent::get('objects', 'id, title', '', $relation['object_id_2']);

            $newStr = "$str.$object[title]"; 

            $result[] = array(

                        'parent' => $parentId,

                        'child' => $relation['object_id_2'],

                        'title' => $object['title'],

                        'str' => $newStr

            );

            $this->_criteriaRec($result, $relation['object_id_2'], $newStr);

        }

    }


    return $result;

}

由于我無法對此進行測試,因此無法檢查。


查看完整回答
反對 回復(fù) 2022-12-11
  • 1 回答
  • 0 關(guān)注
  • 112 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號