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ù)組。注意&
中&$result
的array_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);
工作示例。
- 1 回答
- 0 關(guān)注
- 135 瀏覽
添加回答
舉報(bào)