有人能給我一個讓這個分解函數遞歸的手嗎?我的頭今天不工作。由多個分隔符將字符串分解爲多維數組php
function expl($str,$charlist='|'){
$charlist = str_split($charlist);
foreach($charlist as $char){
if(is_array($str)){
for($i=0; $i<sizeof($str); $i++){
$str[$i] = expl($str[$i],$char);
}
}else{
return (explode($char,trim($str,$char)));
}
}
return($str);
}
echo "<pre>";
print_r(expl("A~a1~a2|B~b1~b2",'|~'));
echo "</pre>";
應該輸出:
Array
(
[0] => Array
(
[0] => A
[1] => a1
[2] => a2
)
[0] => Array
(
[0] => B
[1] => b1
[2] => b2
)
)
順便說一下...我還沒有測試它!這只是一個算法的想法! – Magus
感謝Magnus - 這正是我試圖用我的功能所做的。我已經編輯了你的答案來清理你的例子中的語法,但我仍然認爲這是不正確的。我在某個地方犯了錯嗎?它輸出的東西像數組(0 => Array(0 =>'〜')) – cronoklee
太好了 - 我發現了問題並更新了答案。希望我的編輯將被同行接受 – cronoklee