3 回答
TA贡献1783条经验 获得超4个赞
您可以为此使用递归函数。
function nest(string $str, int $i = 0) {
return isset($str[$i]) ? [$str[$i] => nest($str, $i + 1)] : ['result' => $str];
}
$result = nest($string);
TA贡献2011条经验 获得超2个赞
您可以使用引用,以便在遍历字符串时将下一个字符添加为数组的键,然后将此新条目设置为循环中下一个操作的添加点...
$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;
}
结果是...
Array
(
[A] => Array
(
[D] => Array
(
[A] => Array
(
[M] => Array
(
[result] => ADAM
[E] => Array
(
[result] => ADAME
)
)
)
)
[L] => Array
(
[A] => Array
(
[N] => Array
(
[result] => ALAN
)
)
)
)
)
- 3 回答
- 0 关注
- 107 浏览
添加回答
举报