你可以转动这个字符串:
"package.deal.category"
进入这样的数组:
$array['package']['deal']['category']
此时索引内的值可以是任何值。
答案 0 :(得分:7)
What have you tried?对此的绝对答案非常简单:
$keys = explode('.', $string);
$array = array();
$arr = &$array;
foreach ($keys as $key) {
$arr[$key] = array();
$arr = &$arr[$key];
}
unset($arr);
...但为什么这对你有用呢?
答案 1 :(得分:1)
我真的不明白,问题是什么?
$parts = explode('.', $string);
$array = array();
while (!empty($parts)) {
$array = array(array_pop($parts) => $array);
}
答案 2 :(得分:0)
试试这个:
$text = 'package.deal.category';
$array = array();
foreach(array_reverse(explode('.', $text)) as $key) $array = array($key => $array);
print_r($array);
答案 3 :(得分:0)
我知道这个问题是在一段时间之前提出的,但是对于任何其他寻求不涉及循环的可能答案的人,请尝试使用JSON。
要使$ array ['key1'] ['key2'] = $ value
$key = 'Key1.Key2';
$delimiter = '.';
$value = 'Can be a string or an array.';
$jsonkey = '{"'.str_replace($delimiter, '":{"', $key).'":';
$jsonend = str_repeat('}', substr_count($jsonkey, '{'));
$jsonvalue = json_encode($value);
$array = json_decode($jsonkey.$jsonvalue.$jsonend, true);