Php 如何从字符串生成多维数组。
具有通用字符串$a并将其分解为点es:Php 如何从字符串生成多维数组。,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,具有通用字符串$a并将其分解为点es: $b = explode(".", $a) 如何在不知道计数($b)value的情况下以友好方式运行代码: if (count($b) == 1) { $c[$b[0]] = $var; } elseif (count($b) == 2) { $c[$b[0]][$b[1]] = $var; } elseif (count($b) == 3) { $c[$b[0]][$b[1]][$b[2]] = $var; } ... {
$b = explode(".", $a)
如何在不知道计数($b)value的情况下以友好方式运行代码:
if (count($b) == 1) {
$c[$b[0]] = $var;
} elseif (count($b) == 2) {
$c[$b[0]][$b[1]] = $var;
} elseif (count($b) == 3) {
$c[$b[0]][$b[1]][$b[2]] = $var;
} ... {
...
} elseif (count($b) == n-1) {
$c[$b[0]][$b[1]][$b[2]]...[$b[n-2]] = $var;
} elseif (count($b) == n) {
$c[$b[0]][$b[1]][$b[2]]...[$b[n-1]] = $var;
} else {
$c = $var;
}
当然,这是一个伪代码,可以让你们了解我的意思。你们有两种解决方案: 递归函数 第一种是使用递归函数,该函数将在数组中添加每个新元素 评价方法 另一种方法,很快。。。但是它使用了一个评估功能。我不是这样的电影迷。当您知道脚本的所有方面都会产生影响时,可以使用它
您有两种解决方案: 递归函数 第一种是使用递归函数,该函数将在数组中添加每个新元素 评价方法 另一种方法,很快。。。但是它使用了一个评估功能。我不是这样的电影迷。当您知道脚本的所有方面都会产生影响时,可以使用它
不使用
eval()和递归的解决方案:
function split_to_multi($string, $value)
{
$levels = explode('.', $string);
$result = [];
foreach (array_reverse($levels) as $key) {
$result = [$key => $value];
$value = $result;
}
return $result;
}
例如:
print_r(split_to_multi('foo.bar.baz', 123));
将输出:
Array
(
[foo] => Array
(
[bar] => Array
(
[baz] => 123
)
)
)
不使用
eval()和递归的解决方案:
function split_to_multi($string, $value)
{
$levels = explode('.', $string);
$result = [];
foreach (array_reverse($levels) as $key) {
$result = [$key => $value];
$value = $result;
}
return $result;
}
例如:
print_r(split_to_multi('foo.bar.baz', 123));
将输出:
Array
(
[foo] => Array
(
[bar] => Array
(
[baz] => 123
)
)
)
您能添加一个示例字符串和预期输出吗?您是否亲自尝试过任何东西,或者您是否要求我们为您完成所有工作?您能否发布$a
string您能否添加一个示例字符串和预期输出?你自己真的试过什么吗,或者你是在要求我们为你做所有的工作吗?你能发布$a
字符串吗