您能把这个字符串转换吗:
"package.deal.category"
把它转换成这样的数组:
$array['package']['deal']['category']
此时索引内的值可以是任何值。
您能把这个字符串转换吗:
"package.deal.category"
把它转换成这样的数组:
$array['package']['deal']['category']
你尝试过什么?这个问题的绝对答案非常简单:
在你询问别人之前,先自己尝试解决问题。$keys = explode('.', $string);
$array = array();
$arr = &$array;
foreach ($keys as $key) {
$arr[$key] = array();
$arr = &$arr[$key];
}
unset($arr);
...但是这对你有什么用呢?
$text = 'package.deal.category';
// convert 'package.deal.category' into ['package', 'deal', 'category']
$parts = explode('.', $text);
// changes ['package', 'deal', 'category'] into ['category', 'deal', 'package']
$revparts = array_reverse($parts);
// start with an empty array.
// in practice this should probably
// be the "value" you wish to store.
$array = [];
// iteratively wrap the given array in a new array
// starting with category, then wrap that in deal
// then wrap that in package
foreach($revparts as $key) $array = [$key => $array];
print_r($array);
我知道这个问题已经被问过一段时间了,但是对于其他寻找不涉及循环的可能答案的人来说,可以尝试使用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);
$array['package']['deal']['category']
的值应该是什么?你定义了一个索引来访问,但没有给出一个值。 - Horatio Alderaan