String in Multidimensionales Array schreiben

Hallo Community,

Ich lese aus einer Datenbank einen String aus, der in diesem Format ist:
PHP:
$row['test'] = '45 => 1, 12 => 3'

Wenn ich das aber in ein array reingeschreiben will, also dass [45] => 1 und [12] = 3 klappt das nicht wie gewollt.

Muss ich den String vorher umwandeln?

Danke,
prinzschleifer
 
45(index) =>(zeigt auf) 1(Wert) "=>" ist bei dir kein Zeiger, sondern ein normaler String. Die einzige Möglichkeit die ich sehe, den String splitten und in einer Schleife durchlaufen und innerhalb der Schleife das Array füllen.


Gruss
 
zeige mir deinen Code wie du den String aus der Datenbank ausliest...
sorry nehme mal an "$row['test']" beinhaltet den String?
 
Wieso nicht einfach mit doppeltem Explode arbeiten?

PHP:
<?php


$row['test'] = '45 => 1, 12 => 3';
$array = array();

foreach(explode(',', $row['test']) as $value)
{
	$temp = explode('=>', $value);
	$array[trim($temp[0])] = trim($temp[1]);
}

echo '<pre>'.print_r($array, true).'</pre>';
?>

/edit:
Gibt es vielleicht sogar einen besseren weg, wie man ein multiarray in eine db schreibt, damit das aulesen später einfacher ist?
Ja, der einfachste Weg ist [phpf]serialize[/phpf] zu verwenden.
 
hier meine Antwort, entscheide selber ;)

PHP:
$my_str = $row['test'];
$my_arr = explode(',', $my_str) ;
$new_arr = new array();
foreach($my_arr as $tmp_str) {
	$tmp_arr = explode('=>', $tmp_str);
	$new_arr[trim($tmp_arr[0])] = trim($tmp_arr[1]);
}
 
Zurück