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

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

PHP 修改多維數(shù)組以更新值而不是添加到末尾

PHP 修改多維數(shù)組以更新值而不是添加到末尾

PHP
至尊寶的傳說(shuō) 2023-09-08 16:53:09
我需要幫助修改數(shù)組以達(dá)到所需的結(jié)構(gòu)。很抱歉示例結(jié)構(gòu)可能很大,但我想更好地展示該結(jié)構(gòu)。我有一個(gè)如下所示的目標(biāo)數(shù)組,我需要生成[bf_1040242] => Array                (                    [326] => Just some Information.  Additional Text                    [17565] => Array                        (                            [0] => 2                            [1] => 1                            [2] => 3                        )                    [other] => Array                        (                            [17565] => Testing                            [28623] =>                             [42284] => Something Else                        )                    [597] => 1                    [327] => This is some text                    [328] => asdasd                    [11880] => wwwww                    [329] => xxxxx                    [28622] => 2                    [42283] => 1                    [42284] => Array                        (                            [0] => 2                            [1] => 3                            [2] => 4                        )我生成的數(shù)據(jù)采用不同的格式,其中這些值的結(jié)構(gòu)采用字符串形式。在上面的數(shù)組中,鍵“name”代表字符串格式的單個(gè)數(shù)組的結(jié)構(gòu),“value”保存數(shù)組結(jié)構(gòu)需要更新為的值。這是通過(guò)使用成功完成的$extra = []foreach ($mainArray as $key => $value){    parse_str($value['name'], $tempArr);    $m = $this->multiArr($k, $value);    array_push($extra, $m);}protected function multiArr($k, $val){    foreach($k as $key => $value)    {        if(is_array($value) ) $k[$key] =  $this->multiArr($k[$key], $val);        if(!is_array($value))        {            $k[$key] = (string) $val['value'];        }    }    return $k;}$m 保存單個(gè)數(shù)組值,例如Array(    [bf_1040242] => Array        (            [other] => Array                (                    [42284] => Something Else                )        ))使用這些單獨(dú)的數(shù)組值,我想創(chuàng)建主要所需的數(shù)組,所以我使用array_push($extra, $m);但這會(huì)將每個(gè) $m 數(shù)組添加到彼此下方,而不是按照上面預(yù)期的方式進(jìn)行更新。以下是我最終的結(jié)局。
查看完整描述

1 回答

?
慕森卡

TA貢獻(xiàn)1806條經(jīng)驗(yàn) 獲得超8個(gè)贊

通常你會(huì)使用array_merge_recursive來(lái)實(shí)現(xiàn)這一點(diǎn),但它不會(huì)保留命名鍵,所以我寫(xiě)了一個(gè)小array_join函數(shù)來(lái)讓生活更輕松:)

function array_join($value, &$result) {

? ? if (!is_array($value)) {

? ? ? ? $result = $value;

? ? ? ??

? ? ? ? return;

? ? }

? ??

? ? foreach ($value as $k => $v) {

? ? ? ? array_join($v, $result[$k]);

? ? }

}


$result = [];


foreach ($mainArray as $entry)

{

? ? parse_str($entry['name'] . '=' . $entry['value'], $nameArray);

? ? array_join($nameArray, $result);

}

我們只需遞歸調(diào)用 array_join 直到該值不再是數(shù)組。注意&&$resultarray_join.?我們傳遞數(shù)組中當(dāng)前位置的引用。

為了充分利用parse_str我還通過(guò)附加添加了該值=<value>

工作示例。

為您的下一篇文章提供專(zhuān)業(yè)提示。使用var_export給我們一個(gè)數(shù)組,可以將其復(fù)制粘貼為代碼:)

編輯

更簡(jiǎn)單的解決方案,帶有“邪惡”輸入的轉(zhuǎn)義值。

foreach ($mainArray as $entry)

{

? ? $stringVarArray[] = $entry['name'] . '=' . urlencode($entry['value']);

}

parse_str(implode('&', $stringVarArray), $result);


var_dump($result);

工作示例



查看完整回答
反對(duì) 回復(fù) 2023-09-08
  • 1 回答
  • 0 關(guān)注
  • 135 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

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

公眾號(hào)

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