littleangel Posted August 31, 2014 Share Posted August 31, 2014 in my code below the **data is extracted correctly for the first foreach but doesn't return anything for 2nd foreach though selected one present inside the 2nd foreach** i still get the error Warning: Invalid argument supplied for foreach() for line `foreach ($authorlist as $post)`... however the 2nd foreach returns data correctly as soon as i remove the first foreach loop. below is my code <?php $all= get_posts(array('post_type' => 'books', 'numberposts' => -1,)); foreach ( $all as $post ) : setup_postdata($post); if (!empty($post)) { $booklink = array(); $booklist = get_field('booklist'); foreach ($booklist as $post) : setup_postdata($post); if (!empty($post)) { $booklink[] = strip_tags(get_field('booklink',$post)); } endforeach; wp_reset_postdata(); echo $booklink[0]; $authorname = array(); $authorlist = get_field('authorlist'); foreach ($authorlist as $post) : setup_postdata($post); if (!empty($post)) { $authorname[] = strip_tags(get_field('authorname',$post)); } endforeach; wp_reset_postdata(); echo $authorname[0]; } endforeach; ?> i did var_dump($authorlist) ...it returns bool(false) as long as foreach ($booklist as $post) loop is present. The moment i remove that loop then the dump shows the data of the authorlist correctly...how to get both the loops working together. u can see the output here http://myproject.byethost7.com/wp/?page_id=6 Link to comment https://forums.phpfreaks.com/topic/290763-the-foreach-in-the-loop-returns-boolfalse-though-array-is-present/ Share on other sites More sharing options...
jcbones Posted August 31, 2014 Share Posted August 31, 2014 Not enough info. Post the array you are working with. There are a couple of custom functions in the code as well, we have no idea what those contain. It could all lead back to your error. Link to comment https://forums.phpfreaks.com/topic/290763-the-foreach-in-the-loop-returns-boolfalse-though-array-is-present/#findComment-1489445 Share on other sites More sharing options...
CroNiX Posted August 31, 2014 Share Posted August 31, 2014 Because you foreach as $post in all of them. $post gets overwritten in the inner-loops. Name them different in each loop. Link to comment https://forums.phpfreaks.com/topic/290763-the-foreach-in-the-loop-returns-boolfalse-though-array-is-present/#findComment-1489497 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.