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

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

尋找構(gòu)建多維、多層、關(guān)聯(lián)數(shù)組的方法

尋找構(gòu)建多維、多層、關(guān)聯(lián)數(shù)組的方法

PHP
holdtom 2022-10-22 15:25:38
因此,我在遍歷字符串并將其字符作為索引數(shù)組插入多維關(guān)聯(lián)數(shù)組時遇到了麻煩。所以基本上是一堆多維數(shù)組中的多維數(shù)組中的多維數(shù)組......這有點麻煩,因為我不能手工完成。我需要一種自動化的方式來用一堆字符串來做到這一點。我認為以下示例將更好地解釋它://string i want to enter$string = 'ADAM';//array i want to end up with$result = array              (                'A'=> array                 (                  'D'=>array                   (                    'A'=>array                     (                      'M'=>array                        (                          'result'=>'ADAM'                        )                     )                   )                 )               )我最初的方法只是使用 if 條件將第一個 Char 作為數(shù)組插入到主數(shù)組中,例如:for($i = 0; $i < strlen($string); $i++){      if($i == 0){       $array1[$word[$i]] = array();      }}效果很好。但后來我遇到了我的問題:我如何跟蹤數(shù)組中的當前點?在 if-check 之后,我會選擇一個 else 語句,當 $i 大于 0 時起作用。但是如果我想插入數(shù)組的下一個維度,在這種情況下是 'D',我需要選擇$array1['A'],接下來我需要 $array1['A']['D'] 等。我還沒有找到一種方法來做到這一點。我需要進入這個數(shù)組的字符串從 4-70 個字符不等。我知道的每種方法都只改變了第二維,所以我最終得到:$array1('A'=>array ('A' =>array()));$array1('A'=>array ('D' =>array()));$array1('A'=>array ('A' =>array()));$array1('A'=>array ('M' =>array()));或由索引本身是數(shù)組引起的非法偏移錯誤。也許我在這里的方法是不可能的,但我仍然認為我可能會問,以防我錯過了什么。在稍后階段,我希望對所有字符串使用相同的數(shù)組,所以我基本上使用字符作為節(jié)點。如果'A'作為第一個字符已經(jīng)存在,我會跳過它并將下一個字符串的第二個字符插入' A'-陣列等提前致謝!
查看完整描述

3 回答

?
慕娘9325324

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

您可以為此使用遞歸函數(shù)。


function nest(string $str, int $i = 0) {

    return isset($str[$i]) ? [$str[$i] => nest($str, $i + 1)] : ['result' => $str];

}


$result = nest($string);


查看完整回答
反對 回復(fù) 2022-10-22
?
慕標琳琳

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

這是您要實現(xiàn)的目標的解決方案。請在此處查看有效的解決方案,并附上注釋以解釋它的工作原理。


$val = 'ADAM';

$arr = [];

$keys = str_split($val);

$curr = &$arr;

foreach($keys as $key) {

    $curr = &$curr[$key];

}

$curr = ['result' => $val];


print_r($arr);


查看完整回答
反對 回復(fù) 2022-10-22
?
森林海

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

您可以使用引用,以便在遍歷字符串時將下一個字符添加為數(shù)組的鍵,然后將此新條目設(shè)置為循環(huán)中下一個操作的添加點...


$string = 'ADAM';

$result = [];

$add = &$result;

for($i = 0; $i < strlen($string); $i++){

    $add = &$add[$string[$i]];

}

$add['result'] = $string;

print_r($result);

只是為了展示添加多個條目是如何工作的......


addEntry ( $result, "ADAM");

addEntry ( $result, "ALAN");

addEntry ( $result, "ADAME");


function addEntry ( &$result, string $newValue )  {

    for($i = 0; $i < strlen($newValue); $i++){

        $result = &$result[$newValue[$i]];

    }

    $result['result'] = $newValue;

}

結(jié)果是...


Array

(

    [A] => Array

        (

            [D] => Array

                (

                    [A] => Array

                        (

                            [M] => Array

                                (

                                    [result] => ADAM

                                    [E] => Array

                                        (

                                            [result] => ADAME

                                        )


                                )


                        )


                )


            [L] => Array

                (

                    [A] => Array

                        (

                            [N] => Array

                                (

                                    [result] => ALAN

                                )


                        )


                )


        )


)


查看完整回答
反對 回復(fù) 2022-10-22
  • 3 回答
  • 0 關(guān)注
  • 135 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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