Page 1 of 1
Php parse
Posted: Mon Aug 03, 2009 8:52 am
by tkojemile
Hi,
I would like to retrieve some values from string:
this example:
$string = "one,2009-08-07[2009-08-05];two,2009-08-07[2009-08-05]";
-> in this string you can see string one(one,2009-08-07[2009-08-05]) and two(two,2009-08-07[2009-08-05]).
I would need to get something like this
var1[one]=one
var2[one]=2009-08-07
var3[one]=[2009-08-05]
&
var1[two]=one
var2[two]=2009-08-07
var3[two]=[2009-08-05]
I tried to do something like this:
$tok = strtok($string, ";");
$i=1;
while ($tok !== false) {
echo $tok;
$tok= $tok;
$i++;
$tok = strtok(";");
}
and it returns me:
one,2009-08-07[2009-08-05]
two,2009-08-07[2009-08-05]
but when I exit while loop I loose all variables...
thank in advance!
Re: Php parse
Posted: Mon Aug 03, 2009 8:59 am
by jackpf
Push them into an array.
Like:
Code: Select all
$array = array();
while(whatever)
{
array_push($array, 'whatever');
}
Re: Php parse
Posted: Mon Aug 03, 2009 9:11 am
by Mark Baker
Code: Select all
$string = "one,2009-08-07[2009-08-05];two,2009-08-07[2009-08-05]";
$var1 = $var2 = $var3 = array();
$tmp = explode(';',$string);
foreach($tmp as $value) {
list($key,$values) = explode(',',$value);
$var1[$key] = $key;
list($d1,$d2) = explode('[',$values);
$var2[$key] = $d1;
$var3[$key] = '['.$d2;
}
echo '$var1 = ';
print_r($var1);
echo '<br />$var2 = ';
print_r($var2);
echo '<br />$var3 = ';
print_r($var3);
Re: Php parse
Posted: Mon Aug 03, 2009 9:32 am
by tkojemile
hi,
thx to both for quick answer!
(Sorry for two posts - my proxy does that sometimes)
Script returns:
$var1 = Array ( [one] => one [two] => two )
$var2 = Array ( [one] => 2009-08-07 [two] => 2009-08-07 )
$var3 = Array ( [one] => [2009-08-05] [two] => [2009-08-05] )
but I could use better:
$var1 = Array ( [one1] => one [one2] => 2009-08-07 [one3] => [2009-08-05])
is there posibility to return exact data;
like
var=one
var=2009-08-07
var=[2009-08-05]
if it is too long to write, I will play myself with code - it is good!
thanks!
Re: Php parse
Posted: Mon Aug 03, 2009 9:45 am
by jackpf
You could instead have a multidimensional array...doing what you want.
Like:
Code: Select all
list($key,$values) = explode(',',$value);
list($d1,$d2) = explode('[',$values);
$var[$key] = array($key, $d1, '['.$d2);
Re: Php parse
Posted: Mon Aug 03, 2009 10:12 am
by tkojemile
Hi,
thanks a lot!
I got it finaly
Code: Select all
$string = "one,2009-08-07[2009-08-05];two,2009-08-07[2009-08-12]";
$i=1;
$var1 = $var2 = $var3 = array();
$tmp = explode(';',$string);
foreach($tmp as $value) {
list($key,$values) = explode(',',$value);
$var1[$key] = $key;
list($d1,$d2) = explode('[',$values);
$var2[$key] = $d1;
$var3[$key] = '['.$d2;
$var[$key] = array($key, $d1, '['.$d2);
$var_out[$i] = $var[$key];
$i++;
}
echo '<br />$Var_Out = ';
print_r($var_out[1][1]);
echo '<br />$mutko = ';
print_r($var_out[2][1]);
and output at final I get what I needed!
$Var_Out = 2009-08-07
$Var_Out = 2009-08-07
thank once again!
Re: Php parse
Posted: Mon Aug 03, 2009 10:14 am
by jackpf
Cool
