SarahB12 Posted January 19, 2014 Share Posted January 19, 2014 Hey guys, I'm having the hardest time trying to access data within my foreach loop. Here is the var_dump right before the foreach. array(19) { [0]=> string( "Thursday" [1]=> string( "Saturday" [2]=> string(6) "Monday" [3]=> string(6) "Friday" [4]=> string(6) "Monday" [5]=> string(9) "Wednesday" [6]=> string(7) "Tuesday" [7]=> string(7) "Tuesday" [8]=> string( "Thursday" [9]=> string(6) "Sunday" [10]=> string(7) "Tuesday" [11]=> string(7) "Tuesday" [12]=> string(6) "Monday" [13]=> string(6) "Friday" [14]=> string(9) "Wednesday" [15]=> string(6) "Monday" [16]=> string(9) "Wednesday" [17]=> string(6) "Sunday" [18]=> string(6) "Monday" } array(19) { [0]=> string(90) "http://www.mylink.com/1" [1]=> string(90) "http://www.mylink.com/2" [2]=> string(90) "http://www.mylink.com/3" [3]=> string(90) "http://www.mylink.com/4" [4]=> string(90) "http://www.mylink.com/5" [5]=> string(90) "http://www.mylink.com/6" [6]=> string(90) "http://www.mylink.com/7" [7]=> string(90) "http://www.mylink.com/8" [8]=> string(90) "http://www.mylink.com/9" [9]=> string(90) "http://www.mylink.com/10" [10]=> string(90) "http://www.mylink.com/11" [11]=> string(90) "http://www.mylink.com/12" [12]=> string(90) "http://www.mylink.com/13" [13]=> string(90) "http://www.mylink.com/14" [14]=> string(90) "http://www.mylink.com/15" [15]=> string(90) "http://www.mylink.com/16" [16]=> string(90) "http://www.mylink.com/17" [17]=> string(0) "" [18]=> string(0) "" } array(19) { [0]=> string(6) "715.00" [1]=> string(6) "912.00" [2]=> string(6) "715.00" [3]=> string(6) "715.00" [4]=> string(6) "715.00" [5]=> string(6) "715.00" [6]=> string(6) "715.00" [7]=> string(6) "912.00" [8]=> string(6) "715.00" [9]=> string(6) "715.00" [10]=> string(6) "715.00" [11]=> string(6) "715.00" [12]=> string(6) "715.00" [13]=> string(6) "912.00" [14]=> string(6) "912.00" [15]=> string(6) "715.00" [16]=> string(6) "715.00" [17]=> string(6) "715.00" [18]=> string(6) "912.00" } array(19) { [0]=> string(6) "330.00" [1]=> string(6) "400.00" [2]=> string(6) "330.00" [3]=> string(6) "330.00" [4]=> string(6) "330.00" [5]=> string(6) "330.00" [6]=> string(6) "330.00" [7]=> string(6) "400.00" [8]=> string(6) "330.00" [9]=> string(6) "330.00" [10]=> string(6) "330.00" [11]=> string(6) "330.00" [12]=> string(6) "330.00" [13]=> string(6) "400.00" [14]=> string(6) "400.00" [15]=> string(6) "330.00" [16]=> string(6) "330.00" [17]=> string(6) "330.00" [18]=> string(6) "400.00" } array(19) { [0]=> string(6) "220.00" [1]=> string(6) "275.00" [2]=> string(6) "220.00" [3]=> string(6) "220.00" [4]=> string(6) "220.00" [5]=> string(6) "220.00" [6]=> string(6) "220.00" [7]=> string(6) "275.00" [8]=> string(6) "220.00" [9]=> string(6) "220.00" [10]=> string(6) "220.00" [11]=> string(6) "220.00" [12]=> string(6) "220.00" [13]=> string(6) "275.00" [14]=> string(6) "275.00" [15]=> string(6) "220.00" [16]=> string(6) "220.00" [17]=> string(6) "220.00" [18]=> string(6) "275.00" } array(19) { [0]=> string(6) "187.00" [1]=> string(6) "225.00" [2]=> string(6) "187.00" [3]=> string(6) "187.00" [4]=> string(6) "187.00" [5]=> string(6) "187.00" [6]=> string(6) "187.00" [7]=> string(6) "225.00" [8]=> string(6) "187.00" [9]=> string(6) "187.00" [10]=> string(6) "187.00" [11]=> string(6) "187.00" [12]=> string(6) "187.00" [13]=> string(6) "225.00" [14]=> string(6) "225.00" [15]=> string(6) "187.00" [16]=> string(6) "187.00" [17]=> string(6) "187.00" [18]=> string(6) "225.00" } array(19) { [0]=> string(6) "157.00" [1]=> string(6) "192.00" [2]=> string(6) "157.00" [3]=> string(6) "157.00" [4]=> string(6) "157.00" [5]=> string(6) "157.00" [6]=> string(6) "157.00" [7]=> string(6) "192.00" [8]=> string(6) "157.00" [9]=> string(6) "157.00" [10]=> string(6) "157.00" [11]=> string(6) "157.00" [12]=> string(6) "157.00" [13]=> string(6) "192.00" [14]=> string(6) "192.00" [15]=> string(6) "157.00" [16]=> string(6) "157.00" [17]=> string(6) "157.00" [18]=> string(6) "192.00" } array(19) { [0]=> string(6) "138.00" [1]=> string(6) "165.00" [2]=> string(6) "138.00" [3]=> string(6) "138.00" [4]=> string(6) "138.00" [5]=> string(6) "138.00" [6]=> string(6) "138.00" [7]=> string(6) "165.00" [8]=> string(6) "138.00" [9]=> string(6) "138.00" [10]=> string(6) "138.00" [11]=> string(6) "138.00" [12]=> string(6) "138.00" [13]=> string(6) "165.00" [14]=> string(6) "165.00" [15]=> string(6) "138.00" [16]=> string(6) "138.00" [17]=> string(6) "138.00" [18]=> string(6) "165.00" } array(19) { [0]=> string(5) "89.00" [1]=> string(6) "125.00" [2]=> string(5) "75.00" [3]=> string(5) "95.00" [4]=> string(5) "86.00" [5]=> string(5) "86.00" [6]=> string(5) "75.00" [7]=> string(6) "150.00" [8]=> string(5) "79.00" [9]=> string(5) "77.00" [10]=> string(6) "103.00" [11]=> string(6) "103.00" [12]=> string(5) "75.00" [13]=> string(6) "118.00" [14]=> string(6) "125.00" [15]=> string(5) "89.00" [16]=> string(5) "75.00" [17]=> string(5) "86.00" [18]=> string(6) "135.00" } array(19) { [0]=> string(5) "97.00" [1]=> string(6) "115.00" [2]=> string(5) "97.00" [3]=> string(5) "97.00" [4]=> string(5) "97.00" [5]=> string(5) "97.00" [6]=> string(5) "97.00" [7]=> string(6) "115.00" [8]=> string(5) "97.00" [9]=> string(5) "97.00" [10]=> string(5) "97.00" [11]=> string(5) "97.00" [12]=> string(5) "97.00" [13]=> string(6) "115.00" [14]=> string(6) "115.00" [15]=> string(5) "97.00" [16]=> string(5) "97.00" [17]=> string(5) "97.00" [18]=> string(6) "115.00" } array(19) { [0]=> string(5) "81.00" [1]=> string(6) "105.00" [2]=> string(5) "60.00" [3]=> string(5) "81.00" [4]=> string(5) "71.00" [5]=> string(5) "71.00" [6]=> string(5) "61.00" [7]=> string(6) "125.00" [8]=> string(5) "69.00" [9]=> string(5) "69.00" [10]=> string(5) "81.00" [11]=> string(5) "81.00" [12]=> string(5) "60.00" [13]=> string(5) "96.00" [14]=> string(6) "105.00" [15]=> string(5) "75.00" [16]=> string(5) "60.00" [17]=> string(5) "71.00" [18]=> string(6) "115.00" } array(19) { [0]=> string(5) "78.00" [1]=> string(5) "90.00" [2]=> string(5) "78.00" [3]=> string(5) "78.00" [4]=> string(5) "78.00" [5]=> string(5) "78.00" [6]=> string(5) "78.00" [7]=> string(5) "90.00" [8]=> string(5) "78.00" [9]=> string(5) "78.00" [10]=> string(5) "78.00" [11]=> string(5) "78.00" [12]=> string(5) "78.00" [13]=> string(5) "90.00" [14]=> string(5) "90.00" [15]=> string(5) "78.00" [16]=> string(5) "78.00" [17]=> string(5) "78.00" [18]=> string(5) "90.00" } array(19) { [0]=> string(5) "50.00" [1]=> string(5) "60.00" [2]=> string(5) "50.00" [3]=> string(5) "50.00" [4]=> string(5) "50.00" [5]=> string(5) "50.00" [6]=> string(5) "50.00" [7]=> string(5) "60.00" [8]=> string(5) "50.00" [9]=> string(5) "50.00" [10]=> string(5) "50.00" [11]=> string(5) "50.00" [12]=> string(5) "50.00" [13]=> string(5) "60.00" [14]=> string(5) "60.00" [15]=> string(5) "50.00" [16]=> string(5) "50.00" [17]=> string(5) "50.00" [18]=> string(5) "60.00" } array(19) { [0]=> string(5) "28.00" [1]=> string(5) "35.00" [2]=> string(5) "28.00" [3]=> string(5) "28.00" [4]=> string(5) "28.00" [5]=> string(5) "28.00" [6]=> string(5) "28.00" [7]=> string(5) "35.00" [8]=> string(5) "28.00" [9]=> string(5) "28.00" [10]=> string(5) "28.00" [11]=> string(5) "28.00" [12]=> string(5) "28.00" [13]=> string(5) "35.00" [14]=> string(5) "35.00" [15]=> string(5) "28.00" [16]=> string(5) "28.00" [17]=> string(5) "28.00" [18]=> string(5) "35.00" } array(19) { [0]=> string(5) "13.00" [1]=> string(5) "25.00" [2]=> string(5) "13.00" [3]=> string(5) "13.00" [4]=> string(5) "13.00" [5]=> string(5) "13.00" [6]=> string(5) "13.00" [7]=> string(5) "25.00" [8]=> string(5) "13.00" [9]=> string(5) "13.00" [10]=> string(5) "13.00" [11]=> string(5) "13.00" [12]=> string(5) "13.00" [13]=> string(5) "25.00" [14]=> string(5) "25.00" [15]=> string(5) "13.00" [16]=> string(5) "13.00" [17]=> string(5) "13.00" [18]=> string(5) "25.00" } Here is the foreach: foreach ($values as $cell) { echo "<a href=\"".$link."\" class=\"".$class."\">" . $cell . "</a>"; } $class is supposed to be the first iteration of the array: Thursday, Saturday, Monday, etc.$link is supposed the be the second iteration of the array: http://www.mylink.com/... I can get the $cell data, but I cannot access the $link or $class values. Thank you so much for any help you can provide. ~SarahB Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/ Share on other sites More sharing options...
doddsey_65 Posted January 19, 2014 Share Posted January 19, 2014 Where did you get the variables $class and $link from? Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/#findComment-1465701 Share on other sites More sharing options...
SarahB12 Posted January 19, 2014 Author Share Posted January 19, 2014 Sorry - I forgot to explain that. $class and $link are not defined yet - right now these are placeholders more than anything else. I'm having issues defining these within the foreach loop. Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/#findComment-1465703 Share on other sites More sharing options...
doddsey_65 Posted January 19, 2014 Share Posted January 19, 2014 So $values contains 14 arrays, each with 19 values? Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/#findComment-1465704 Share on other sites More sharing options...
SarahB12 Posted January 19, 2014 Author Share Posted January 19, 2014 $values contains 15 arrays with 19 values. Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/#findComment-1465705 Share on other sites More sharing options...
doddsey_65 Posted January 19, 2014 Share Posted January 19, 2014 You would need to iterate over the values in each $cell. Since $cell is an array I don't know what you want to echo with it since you cannot echo an array. foreach ($values as $cell) { $links = $cell[0]; $classes = $cell[1]; foreach ($links as $key => $link) { echo $link; echo $classes[$key]; } } Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/#findComment-1465706 Share on other sites More sharing options...
SarahB12 Posted January 19, 2014 Author Share Posted January 19, 2014 Here is what I'm looking to do. I want to loop through all of the $cell values which are the numbers but $link and $class need to go to the next entry after the values have ended on the array. Here's an example: <a href="http://www.mylink.com/1" class="Thursday">715.00 </a> <a href="http://www.mylink.com/1" class="Thursday">330.00 </a> <a href="http://www.mylink.com/1" class="Thursday">220.00 </a> <a href="http://www.mylink.com/1" class="Thursday">187.00 </a> <a href="http://www.mylink.com/1" class="Thursday">157.00 </a> <a href="http://www.mylink.com/1" class="Thursday">138.00 </a> <a href="http://www.mylink.com/1" class="Thursday">89.00 </a> <a href="http://www.mylink.com/1" class="Thursday">97.00 </a> <a href="http://www.mylink.com/1" class="Thursday">81.00 </a> <a href="http://www.mylink.com/1" class="Thursday">78.00 </a> <a href="http://www.mylink.com/1" class="Thursday">50.00 </a> <a href="http://www.mylink.com/1" class="Thursday">28.00 </a> <a href="http://www.mylink.com/1" class="Thursday">13.00 </a> <a href="http://www.mylink.com/2" class="Saturday">912.00 </a> <a href="http://www.mylink.com/2" class="Saturday">400.00 </a> etc.... Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/#findComment-1465707 Share on other sites More sharing options...
mac_gyver Posted January 19, 2014 Share Posted January 19, 2014 $classes = array_shift($values); // get the 1st array of class values $links = array_shift($values); // get the 2nd array of links // $values is just the remaining arrays of values at this point and can be repetitively looped over foreach($classes as $key=>$class){ foreach($values as $arr){ echo "<a href='$links[$key]' class='$class'>$arr[$key]</a><br>\n"; } } Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/#findComment-1465731 Share on other sites More sharing options...
SarahB12 Posted January 19, 2014 Author Share Posted January 19, 2014 The array_shift is taking the first value out of each of the arrays. Here is the result for $classes: Thursday http://www.mylink.com/1 715.00 330.00 220.00 187.00 157.00 138.00 89.00 97.00 81.00 78.00 50.00 28.00 13.00 and here is the result for $links: Saturday http://www.mylink.com/2 912.00 400.00 275.00 225.00 192.00 165.00 125.00 115.00 105.00 90.00 60.00 35.00 25.00 Is there a way to assign the first array to $classes and the second array to $links, and then iterate through the remaining arrays? On 1/19/2014 at 10:11 AM, mac_gyver said: $classes = array_shift($values); // get the 1st array of class values $links = array_shift($values); // get the 2nd array of links // $values is just the remaining arrays of values at this point and can be repetitively looped over foreach($classes as $key=>$class){ foreach($values as $arr){ echo "<a href='$links[$key]' class='$class'>$arr[$key]</a><br>\n"; } } Thank you Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/#findComment-1465760 Share on other sites More sharing options...
mac_gyver Posted January 19, 2014 Share Posted January 19, 2014 Quote Is there a way to assign the first array to $classes and the second array to $links, and then iterate through the remaining arrays? that's exactly what the code i posted does. if the result you got from that code isn't correct, that would mean that your posted data definition is inaccurate and it's impossible to write code without accurate information. Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/#findComment-1465763 Share on other sites More sharing options...
SarahB12 Posted January 19, 2014 Author Share Posted January 19, 2014 Here are the results for $values: Array ( [0] => Thursday [1] => Saturday [2] => Monday [3] => Friday [4] => Monday [5] => Wednesday [6] => Tuesday [7] => Tuesday [8] => Thursday [9] => Sunday [10] => Tuesday [11] => Tuesday [12] => Monday [13] => Friday [14] => Wednesday [15] => Monday [16] => Wednesday [17] => Sunday [18] => Monday ) Array ( [0] => http://www.mylink.com/1 [1] => http://www.mylink.com/2 [2] => http://www.mylink.com/3 [3] => http://www.mylink.com/4 [4] => http://www.mylink.com/5 [5] => http://www.mylink.com/6 [6] => http://www.mylink.com/7 [7] => http://www.mylink.com/8 [8] => http://www.mylink.com/9 [9] => http://www.mylink.com/10 [10] => http://www.mylink.com/11 [11] => http://www.mylink.com/12 [12] => http://www.mylink.com/13 [13] => http://www.mylink.com/14 [14] => http://www.mylink.com/15 [15] => http://www.mylink.com/16 [16] => http://www.mylink.com/17 [17] => http://www.mylink.com/18 [18] => http://www.mylink.com/19 ) Array ( [0] => 715.00 [1] => 912.00 [2] => 715.00 [3] => 715.00 [4] => 715.00 [5] => 715.00 [6] => 715.00 [7] => 912.00 [8] => 715.00 [9] => 715.00 [10] => 715.00 [11] => 715.00 [12] => 715.00 [13] => 912.00 [14] => 912.00 [15] => 715.00 [16] => 715.00 [17] => 715.00 [18] => 912.00 ) Array ( [0] => 330.00 [1] => 400.00 [2] => 330.00 [3] => 330.00 [4] => 330.00 [5] => 330.00 [6] => 330.00 [7] => 400.00 [8] => 330.00 [9] => 330.00 [10] => 330.00 [11] => 330.00 [12] => 330.00 [13] => 400.00 [14] => 400.00 [15] => 330.00 [16] => 330.00 [17] => 330.00 [18] => 400.00 ) Array ( [0] => 220.00 [1] => 275.00 [2] => 220.00 [3] => 220.00 [4] => 220.00 [5] => 220.00 [6] => 220.00 [7] => 275.00 [8] => 220.00 [9] => 220.00 [10] => 220.00 [11] => 220.00 [12] => 220.00 [13] => 275.00 [14] => 275.00 [15] => 220.00 [16] => 220.00 [17] => 220.00 [18] => 275.00 ) Array ( [0] => 187.00 [1] => 225.00 [2] => 187.00 [3] => 187.00 [4] => 187.00 [5] => 187.00 [6] => 187.00 [7] => 225.00 [8] => 187.00 [9] => 187.00 [10] => 187.00 [11] => 187.00 [12] => 187.00 [13] => 225.00 [14] => 225.00 [15] => 187.00 [16] => 187.00 [17] => 187.00 [18] => 225.00 ) Array ( [0] => 157.00 [1] => 192.00 [2] => 157.00 [3] => 157.00 [4] => 157.00 [5] => 157.00 [6] => 157.00 [7] => 192.00 [8] => 157.00 [9] => 157.00 [10] => 157.00 [11] => 157.00 [12] => 157.00 [13] => 192.00 [14] => 192.00 [15] => 157.00 [16] => 157.00 [17] => 157.00 [18] => 192.00 ) Array ( [0] => 138.00 [1] => 165.00 [2] => 138.00 [3] => 138.00 [4] => 138.00 [5] => 138.00 [6] => 138.00 [7] => 165.00 [8] => 138.00 [9] => 138.00 [10] => 138.00 [11] => 138.00 [12] => 138.00 [13] => 165.00 [14] => 165.00 [15] => 138.00 [16] => 138.00 [17] => 138.00 [18] => 165.00 ) Array ( [0] => 89.00 [1] => 125.00 [2] => 75.00 [3] => 95.00 [4] => 86.00 [5] => 86.00 [6] => 75.00 [7] => 150.00 [8] => 79.00 [9] => 77.00 [10] => 103.00 [11] => 103.00 [12] => 75.00 [13] => 118.00 [14] => 125.00 [15] => 89.00 [16] => 75.00 [17] => 86.00 [18] => 135.00 ) Array ( [0] => 97.00 [1] => 115.00 [2] => 97.00 [3] => 97.00 [4] => 97.00 [5] => 97.00 [6] => 97.00 [7] => 115.00 [8] => 97.00 [9] => 97.00 [10] => 97.00 [11] => 97.00 [12] => 97.00 [13] => 115.00 [14] => 115.00 [15] => 97.00 [16] => 97.00 [17] => 97.00 [18] => 115.00 ) Array ( [0] => 81.00 [1] => 105.00 [2] => 60.00 [3] => 81.00 [4] => 71.00 [5] => 71.00 [6] => 61.00 [7] => 125.00 [8] => 69.00 [9] => 69.00 [10] => 81.00 [11] => 81.00 [12] => 60.00 [13] => 96.00 [14] => 105.00 [15] => 75.00 [16] => 60.00 [17] => 71.00 [18] => 115.00 ) Array ( [0] => 78.00 [1] => 90.00 [2] => 78.00 [3] => 78.00 [4] => 78.00 [5] => 78.00 [6] => 78.00 [7] => 90.00 [8] => 78.00 [9] => 78.00 [10] => 78.00 [11] => 78.00 [12] => 78.00 [13] => 90.00 [14] => 90.00 [15] => 78.00 [16] => 78.00 [17] => 78.00 [18] => 90.00 ) Array ( [0] => 50.00 [1] => 60.00 [2] => 50.00 [3] => 50.00 [4] => 50.00 [5] => 50.00 [6] => 50.00 [7] => 60.00 [8] => 50.00 [9] => 50.00 [10] => 50.00 [11] => 50.00 [12] => 50.00 [13] => 60.00 [14] => 60.00 [15] => 50.00 [16] => 50.00 [17] => 50.00 [18] => 60.00 ) Array ( [0] => 28.00 [1] => 35.00 [2] => 28.00 [3] => 28.00 [4] => 28.00 [5] => 28.00 [6] => 28.00 [7] => 35.00 [8] => 28.00 [9] => 28.00 [10] => 28.00 [11] => 28.00 [12] => 28.00 [13] => 35.00 [14] => 35.00 [15] => 28.00 [16] => 28.00 [17] => 28.00 [18] => 35.00 ) Array ( [0] => 13.00 [1] => 25.00 [2] => 13.00 [3] => 13.00 [4] => 13.00 [5] => 13.00 [6] => 13.00 [7] => 25.00 [8] => 13.00 [9] => 13.00 [10] => 13.00 [11] => 13.00 [12] => 13.00 [13] => 25.00 [14] => 25.00 [15] => 13.00 [16] => 13.00 [17] => 13.00 [18] => 25.00 ) $classes = array_shift($values); // get the 1st array of class values Here are the results for $classes: Thursday http://www.mylink.com/1 715.00 330.00 220.00 187.00 157.00 138.00 89.00 97.00 81.00 78.00 50.00 28.00 13.00 $links = array_shift($values); // get the 2nd array of links Here are the results for $links: Saturday http://www.mylink.com/2 912.00 400.00 275.00 225.00 192.00 165.00 125.00 115.00 105.00 90.00 60.00 35.00 25.00 Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/#findComment-1465764 Share on other sites More sharing options...
mac_gyver Posted January 20, 2014 Share Posted January 20, 2014 there's no way the given code, which i tested before posting, can produce the result you are listing. Link to comment https://forums.phpfreaks.com/topic/285479-access-data-inside-foreach/#findComment-1465863 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.