我想问是否有某种方法可以操纵已经构建的 php 函数将格式中的字符串转换key => value
为实际的字符串,分别带有键和值?我知道有 parse_str 但我相信这是为了key=value
语法
这个问题似乎不清楚,所以这里有一个例子:
我有一个类似的字符串color => blue\nshape => sphere\nsize => medium
,我想把它变成一个数组
您可以替换字符并使用 parse_str:
$string = 'color => blue\nshape => sphere\nsize => medium';
$string = str_replace(array(' => ', "\\n"), array('=', '&'), $string);
parse_str($string, $output);
print_r($output);
编辑:
$string = 'color => blue\nshape => sphere\nsize => medium';
$output = array();
$tok = strtok($string, "\\n");
while ($tok !== false) {
$array = explode(' => ', $tok);
$output[$array[0]] = $array[1];
$tok = strtok("\\n");
}
print_r($output);
我意识到 strtok 只有在分隔符由 1 个字符组成时才有用。所以最好只使用爆炸版本。
试试这个代码:
$str='color => blue\nshape => sphere\nsize => medium;';
$first_arr=explode('\\', $str);
$array=array();
foreach ($first_arr as $value) {
$var=explode('=>', $value);
$array[$var[0]]=$var[1];
}
var_dump($array);
$string = 'color => blue\nshape => sphere\nsize => medium';
$foo = array();
// Explode your string
$stringParts = explode("\n", $string);
foreach ($stringParts as $item) {
// For each "item" in your string
// Separate key from value
$item = explode(' => ', $item);
// Assign it as a key-value combination in your new array $foo
$foo[$item[0]] = $item[1];
}
print_r($foo);
parse_str(str_replace("\n", "&", $str), $output);