crowds40 Posted June 29, 2014 Share Posted June 29, 2014 For some reason this array will only return 'white'. Is there a problem with the code? <?php $test = array('blue','green','white'); foreach($test as $val) ?> <?php echo "$val"; ?> Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/ Share on other sites More sharing options...
Ch0cu3r Posted June 29, 2014 Share Posted June 29, 2014 Yes, you need to wrap echo "$val"; in curly braces <?php $test = array('blue','green','white'); foreach($test as $val) { echo "$val"; } ?> If you are to go in and out of PHP mode then you should format your code like <?php $test = array('blue','green','white'); ?> <ul> <?php foreach($test as $val): /* opens foreach block */ ?> <li><?php echo "$val"; ?></li> <?php endforeach; /* closes foreach block */ ?> </ul> Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483375 Share on other sites More sharing options...
ginerjm Posted June 29, 2014 Share Posted June 29, 2014 Why are you exiting php mode in your foreach?? <?php $test = array('blue','green','white'); foreach($test as $val) echo "$val<br>"; exit(); Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483376 Share on other sites More sharing options...
crowds40 Posted June 29, 2014 Author Share Posted June 29, 2014 I had to take it one step further to: <?php $test = array('blue','green','white'); foreach($test as $val) $testValues[] = "color=$val"; echo "<a href='?"; echo join("&", $testValues); echo "'>Color</a>"; ?> The url is "website.com?color=blue&color=green&color=white" Again this this will only return the white and not the blue, green, and white. Hope that makes sense. Any ideas? Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483377 Share on other sites More sharing options...
ginerjm Posted June 29, 2014 Share Posted June 29, 2014 Works for me. Although you might want to change & to just Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483378 Share on other sites More sharing options...
mac_gyver Posted June 29, 2014 Share Posted June 29, 2014 your link is repeating the color= parameter, so each value in turn is overwriting the previous value when php populates the $_GET['color'] variable. what overall goal are you trying to accomplish? a separate link for each possible color or one link that contains all the values from the array? Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483379 Share on other sites More sharing options...
crowds40 Posted June 29, 2014 Author Share Posted June 29, 2014 Hi mac_gyver, I am trying to have one link that will contain the 'blue' 'green' and 'white' values from the array Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483380 Share on other sites More sharing options...
mac_gyver Posted June 29, 2014 Share Posted June 29, 2014 what format do you want the link to be in, because it's impossible to write code without knowing what end result you are trying to produce. Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483381 Share on other sites More sharing options...
crowds40 Posted June 29, 2014 Author Share Posted June 29, 2014 I don't exactly know what you mean by what format. Sorry I am new to this. Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483383 Share on other sites More sharing options...
Ch0cu3r Posted June 29, 2014 Share Posted June 29, 2014 So you want to output a separate link for each color in your array? <?php $colors = array('blue','green','white'); foreach($colors as $color) { echo '<a href="page.php?color='. $color. '">' . $color. '</a><br />'; } ?> Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483384 Share on other sites More sharing options...
crowds40 Posted June 29, 2014 Author Share Posted June 29, 2014 Thanks for the response. I wish to output all three colors (blue,green,white) in the same link from the array if possible Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483387 Share on other sites More sharing options...
Ch0cu3r Posted June 29, 2014 Share Posted June 29, 2014 You need to answer mac_gyver question here, as you replies make no sense. Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483390 Share on other sites More sharing options...
mac_gyver Posted June 30, 2014 Share Posted June 30, 2014 @crowds40, your question lacks context and definition that would would allow us to answer it (it didn't even start as being a question about making one url, which means that the answers given at first didn't apply to the actual problem.) you have an array of one or more colors. you either need to combine them into one url parameter, i.e. ?color=blue|green|white or you need to use a separate parameter in the url for each one (which could actually be an array name so that php would receive an array when the url is submitted.) which method you use depends on what you are using the values for, how cluttered/long you want to make the url, and how much code you want to write to extract the values when the link gets submitted. Link to comment https://forums.phpfreaks.com/topic/289339-array-problem/#findComment-1483419 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.