Ich mag würde ein mehrzeiliges-String wie dieserexplodieren zwei-item-Liste in Array als Schlüssel => Wert
color:red
material:metal
auf ein Array wie diese
$array['color']=red
$array['material']=metal
jeder explodieren Idee?
Ich mag würde ein mehrzeiliges-String wie dieserexplodieren zwei-item-Liste in Array als Schlüssel => Wert
color:red
material:metal
auf ein Array wie diese
$array['color']=red
$array['material']=metal
jeder explodieren Idee?
Verwenden Sie explode(), Sie können eine Regexp dafür verwenden, aber es ist einfach genug ohne den Overhead.
$data = array();
foreach (explode("\n", $dataString) as $cLine) {
list ($cKey, $cValue) = explode(':', $cLine, 2);
$data[$cKey] = $cValue;
}
Wie in den Kommentaren erwähnt, wenn Daten von einem Windows/DOS-Umgebung kommt es würde möglicherweise auch CRLF Zeilenumbrüche haben, die folgende Zeile vor dem foreach()
dass lösen.
$matches = array();
preg_match_all('/^(.+?):(.+)$/m', $dataString, $matches);
$data = array_combine($matches[1], $matches[2]);
explodiert zuerst auf Zeilenumbruch: mit preg_match_all() und array_combine()
$dataString = str_replace("\r", "", $dataString); // remove possible \r characters
Die Alternative mit regexp kann sehr angenehm sein. Prolly \ n
Dann explodieren Sie alle Elemente des resultierenden Arrays auf: und setzen Sie ein neues Array auf diesen Schlüssel/Wert.
dieses Versuchen
$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);
Sie haben keine? – SilentGhost