georage Posted February 9, 2007 Share Posted February 9, 2007 I am trying to create a loop that redefines a variable name and assigns values to be used later. In other programming languages I could use the counter itself as part of the variable name, by converting the loop INT to a STRING and concatenating that onto my generic variable name, BUT, I have not been able to figure out how to do this in PHP. So, I am reduced to this kludge ... writing a separate code block for each iteration of the loop. This keeps me awake at night, as I know there has to be a better way. For example, in the real world example below I would have thought I could get away with something like this: $str=(string)$i; //make the loop counter a string $headline . $str = $articleinfo['headline']; //create a new variable name for each loop! I appreciate any assistance. -- george for($i=1; $i<=6; $i++) { //fetch array $articleinfo=mysql_fetch_array($resultarticles); if($i==1) { //headline $headline1 = $articleinfo['headline']; //author $author1 = $articleinfo['author']; //article text $article1 = $articleinfo['article']; } //repeat until blue in face if($i==2) //etc { } //repeat until blue in face if($i==2) //etc { } //repeat until blue in face if($i==2) //etc { } //etc } Link to comment https://forums.phpfreaks.com/topic/37802-redefining-variable-name-within-a-loop/ Share on other sites More sharing options...
sspoke Posted February 9, 2007 Share Posted February 9, 2007 ya pretty weird your fetching the same results 6 times? or dunno oh you would have to use $$ $headline{$i} $headline1 $headline2 $headline3 etc... comes out.. Link to comment https://forums.phpfreaks.com/topic/37802-redefining-variable-name-within-a-loop/#findComment-180850 Share on other sites More sharing options...
effigy Posted February 9, 2007 Share Posted February 9, 2007 You could do it this way... <pre> <?php for ($i=1; $i<=6; $i++) { $name = "name_$i"; $$name = $i; } echo $name_1; echo $name_2; ?> </pre> ...but I recommend using an array: <pre> <?php $name[] = null; for ($i=1; $i<=6; $i++) { $name[] = $i; } print_r($name); ?> </pre> Link to comment https://forums.phpfreaks.com/topic/37802-redefining-variable-name-within-a-loop/#findComment-180854 Share on other sites More sharing options...
georage Posted February 9, 2007 Author Share Posted February 9, 2007 Thanks guys, you are brilliant! I will give it a shot. Link to comment https://forums.phpfreaks.com/topic/37802-redefining-variable-name-within-a-loop/#findComment-180859 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.