PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : string parsen?



cmdrkeen
13-07-2002, 17:01
hi @ll,

ich habe folgenden string:

0-1-240-112-438;1-1-336-165-268;2-1-504-159-215;

nun möchte ich in ein paar variablen(bzw. so viel, wie es teilstrings sind) folgendes reinschreiben:

in die erste variable:
0-1-240-112-438

in die zweite variable:
1-1-336-165-268

in die dritte variable:
2-1-504-159-215

und so weiter, wenn der string noch weiter gehen würde(tut er manchmal)...also quasi den ";" wegmachen und den rest speichern....


danach will ich die variablen wieder auseinandernehmen, so dass ich folgendes habe:

für die erste variable:
0
1
240
112
438


und so weiter halt....diese zahlen sollen dann in eine mysql query reingeschrieben werden...


wisst ihr weiter??


DANKE
&cu

cmdrkeen

crac
14-07-2002, 11:45
das koennte etwa so aussehen (-->explode(separator, $string)):



$arrayRecords = explode(';',$deinString);

for ($i = 0; $i < sizeof($arrayRecords); $i++) {
$arrayElement = explode(-',$arrayRecords[$i]);
}

cmdrkeen
14-07-2002, 15:52
hi,

ich habe das auch schon so inetwa gemacht, aber immer wenn ich versuche diese zahlen dann in eine variable zu schreiben, macht er das zwar, aber er gibt mir immer nur eine variable aus....

mein code:



$str="0-1-240-208-322;1-1-240-343-438;2-1-360-239-500;3-1-1200-161-353;4-1-1200-161-353; ";
$pieces =explode(";",$str);
foreach($pieces as $wert){
$save = "array$x";
$$save = $wert;
$x++;
}

$test = array();
while($y < $x-1){
$query = "query$y";
$parse2 = "array".$y;
$cur_array2 = explode("-",$$parse2);
foreach($cur_array2 as $wert){
print $wert."<br>";
if($z == 1){
$test[1] .= "INSERT INTO sitzplan_ln(sitzid,art,top,left,lnid,lenght) VALUES ($sitzplanid[0],".$wert.",";
}
if($z == 2){
$test[1] .= $wert.",";
}
if($z == 3){
$test[1] .= $wert.",";
}
if($z == 4){
$test[1] .= "$y,".$wert.")";
}
$z++;
}
print "<hr>";
$y++;
}


$y = 0;
$z =0;

foreach($test as $wert){
print $wert."<br>";
}


schau dir bitte einfach mal das ergebniss an...


danke&cu

cmdrkeen

crac
14-07-2002, 17:05
ich habe deinen code ein bisschen veraendert, aber so funzt es:



<?php

$string = "0-1-240-208-322;1-1-240-343-438;2-1-360-239-500;3-1-1200-161-353;4-1-1200-161-353;";

// letzter ';' entfernen
$string = substr_replace($string,'',(strlen($string)-1),1);

$recordsArray = explode(';',$string);

for ($i = 0; $i < sizeof($recordsArray); $i++) {

unset($elementsArray);
unset($sql);
$elementsArray = explode('-',$recordsArray[$i]);

$sql = "INSERT INTO sitzplan_ln(sitzid,art,top,left,lnid,lenght) ";
$sql .= "VALUES (NULL";

for ($k = 0; $k < sizeof($elementsArray); $k++) {

$sql .= ",".$elementsArray[$k];

}

$sql .= ");";

// hier kommt QUERY an DB

}
?>

cmdrkeen
14-07-2002, 18:25
DAAANKEEEE !!! FUNKTIONIERT EINWANDFREI!!!


cu cmdrkeen

crac
15-07-2002, 09:19
:) freut mich, dass ich helfen konnte ... ;)