Jalz Posted May 14, 2010 Share Posted May 14, 2010 Hi Guys, Currently I have some code which I wrote long hand which works, however I would like to code it more elgantly using a loop. The only difference between the lines underneath is the variable name, each variable as a different number attached to it. if($order == 0) $event_edit->setField('DietaryRequirements',fmsCheckboxCombine($dietReqs0)); if($order == 1) $event_edit->setField('DietaryRequirements',fmsCheckboxCombine($dietReqs1)); if($order == 2) $event_edit->setField('DietaryRequirements',fmsCheckboxCombine($dietReqs2)); if($order == 3) $event_edit->setField('DietaryRequirements',fmsCheckboxCombine($dietReqs3)); if($order == 4) $event_edit->setField('DietaryRequirements',fmsCheckboxCombine($dietReqs4)); if($order == 5) $event_edit->setField('DietaryRequirements',fmsCheckboxCombine($dietReqs5)); if($order == 6) $event_edit->setField('DietaryRequirements',fmsCheckboxCombine($dietReqs6)); if($order == 7) $event_edit->setField('DietaryRequirements',fmsCheckboxCombine($dietReqs7)); if($order == $event_edit->setField('DietaryRequirements',fmsCheckboxCombine($dietReqs8)); if($order == 9) $event_edit->setField('DietaryRequirements',fmsCheckboxCombine($dietReqs9)); So the loop that I managed to come up with is as follows as I wont need the if statement from my original code: //recid is a array variable I've set up foreach($recid as $order => $recid1) { $dietReqs = '$dietReqs'.$order; $event_edit->setField('DietaryRequirements',fmsCheckboxCombine($dietReqs)); } However this doesn't seem to work. It doesn't show up an error message, but nether does it write the contents of variable $dietReqs0..9 in my database field where as my long hand does.I've tried putting echo just before the variable name, that does produce an error. Any ideas what I could be doing wrong? I could keep the long code as it works, but would love to simplify it ideally. Many Thanks to all that help Link to comment https://forums.phpfreaks.com/topic/201801-trying-to-use-a-loop-to-clean-up-some-long-code/ Share on other sites More sharing options...
kenrbnsn Posted May 14, 2010 Share Posted May 14, 2010 Try: <?php for ($order = 0;$order < 10;$order++) { $event_edit->setField('DietaryRequirements',fmsCheckboxCombine(${'dietReqs' . $order)); } ?> Ken Link to comment https://forums.phpfreaks.com/topic/201801-trying-to-use-a-loop-to-clean-up-some-long-code/#findComment-1058539 Share on other sites More sharing options...
Jalz Posted May 14, 2010 Author Share Posted May 14, 2010 Thankyou kenrbnsn, that works a treat Link to comment https://forums.phpfreaks.com/topic/201801-trying-to-use-a-loop-to-clean-up-some-long-code/#findComment-1058543 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.