我在数据库中有一些数据,格式如下:
Description~Level||Description~Level||
我想把它转换成一个数组,其中description是Key&调平数组的值。
$perso1 = explode('||', $myLevels['perso']);
$perso = array_slice($perso1, 0 , -1);
到目前为止,我做了这个,它返回:
Array ( [0] => ffghtr~54644
[1] => ffghtr~54644
[2] => ffghtr~54644
[3] => ffghtr~54644
[4] => ffghtr~54644
[5] => ffghtr~54644 )
现在我找不到用我的描述替换数组键(0,1,2等)的方法。
知道吗?
事先非常感谢。
$tmp = explode('||', $myLevels['perso']);
foreach ($tmp as $str) {
// this check is to remove empty elements from the list ..
// because your list ends with "||" there is a last empty element
if(strpos($str, "~") === false) continue;
// split by "~" into $key and $value
list($key, $value) = explode("~", $str, 2);
$result[$key] = $value;
}
print_r($result);
请注意,在发布的示例中,您总是有相同的密钥:"ffghtr"。
因为数组键是唯一的,所以每次迭代都会替换这个键的内容,结果只有最后一个元素。
$array = Array ( [0] => ffghtr~54644
[1] => ffghtr~54644
[2] => ffghtr~54644
[3] => ffghtr~54644
[4] => ffghtr~54644
[5] => ffghtr~54644 )
$new_array = new Array();
foreach($array as $a)
$new_array[(split('~',$a))[0]] = (split('~',$a))[1]
所以new_array应该是您想要的形式。事实上,我没有测试代码,但你明白了。请注意,您发布的数组始终具有相同的关键字:ffghtr。
所以你最终会得到一个只有一个元素的新数组。。。