как запустить цикл foreach с тройным условием - PullRequest
3 голосов
/ 26 марта 2010

у меня есть два цикла foreach для отображения некоторых данных, но я хочу использовать один foreach на основе результата базы данных.

означает, что если есть какая-либо строка, возвращаемая из базы данных, то forach($first as $fk=>$fv) должно выполняться иначе foreach($other as $ok) должен выполнить. я теряю ниже троичного оператора, который дает ошибку разбора

$n=$db->numRows($taskData); // databsse results

<?php ($n) ? foreach ($first as $fk=>$fv) : foreach ($other as $ok) 
{ ?>
<table><tr><td>......some data...</td></tr></table>
<?php } ?>

подскажите, пожалуйста, как справиться с таким условием через троичного оператора или любую другую идею

Спасибо

1 Ответ

4 голосов
/ 26 марта 2010

Используйте условный оператор, чтобы выбрать массив для использования, а затем используйте $fv в качестве значения, а не $ok для второго параметра.

foreach ( ($n ? $first : $other) as $fk => $fv )

Наличие двух совершенно разных циклов, выбранных по условию и с совершенно разными переменными, было бы не очень хорошей идеей, поскольку это привело бы к действительно запутанному коду, поскольку вы не были бы уверены, не проверяя $n, какой из $fk , $fv и $ok были установлены.

Если вам нужно сделать что-то другое в зависимости от условия, может быть, лучше было бы использовать фрагменты кода, одинаковые по функциям?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...