我想要展开像这样的多行字符串。
将其转换为如下数组
有什么想法吗?
color:red
material:metal
将其转换为如下数组
$array['color']=red
$array['material']=metal
有什么想法吗?
$data = array();
foreach (explode("\n", $dataString) as $cLine) {
list ($cKey, $cValue) = explode(':', $cLine, 2);
$data[$cKey] = $cValue;
}
foreach()
之前添加以下代码行可以解决这个问题。$dataString = str_replace("\r", "", $dataString); // remove possible \r characters
$matches = array();
preg_match_all('/^(.+?):(.+)$/m', $dataString, $matches);
$data = array_combine($matches[1], $matches[2]);
试一下
$value = '1|a,2|b,3|c,4|d';
$temp = explode (',',$value);
foreach ($temp as $pair)
{
list ($k,$v) = explode ('|',$pair);
$pairs[$k] = $v;
}
print_r($pairs);
首先按换行符进行分割。可能是 \n
然后对每个生成的数组项按 : 进行分割,并将新的键/值设置为该项。
$cValue
中去除可能的"\r"
。 - Jon