| |
|
|
| |
<?php
$b = array(33, 34, 35, 36);
for($a = 0; $a < count($b); $a++)
{
if($b[$a]>30 && $b[$a]<40)
{
echo ($b[$a]." ");
}
else
{
echo " ";
}
}
?>
|
Результат: 33 34 35 36
Вместо этого:
Подставлю это:
И вывод сделаю в таблице.
Пример:
<table>
<tr>
<td><?php echo (substr($result, 0)); ?></td>
</tr>
</table>
|
Результат: 36
Из-за того что вывод сделали вне цикла выходит одно значение и последнее.
А как сделать чтобы все числа отображались в браузере если все числа истино условию? | |
| |
|
|
| |
|
|
| |
для: Wita1y
(17.09.2006 в 21:30)
| | | Выводить в цикле или $result сделать массивом, т.е.
а потом опять в цикле выводить :) | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(17.09.2006 в 23:36)
| | | А нельзя такое вывести функцией implode() ? Видел где-то в примерах | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(17.09.2006 в 23:36)
| | | Я мог бы так сделать:
<?php
$b = array(33, 34, 35, 36);
for($a = 0; $a < count($b); $a++)
{
if($b[$a]>30 && $b[$a]<40)
{
//echo ($b[$a]." ");
}
else
{
echo " ";
}
}
?>
|
А в таблицу вставить цикл:
<table><tr><td>
<?php
for($a=0;$a<count($b);$a++)
{
echo $b[$a]." ";
}
?>
</td></tr></table>
|
Результат: 33 34 35 36
Каждый раз когда я захочу сделать вывод элементов из массива придется ставить цикл? Нет... так же не правильно!
Может есть такая функция которая упростит задачу? | |
| |
|
|
| |
|
|
| |
для: Wita1y
(18.09.2006 в 08:07)
| | | мне казалось, что вы хотите в разные строки таблицы результат записывать, тогда бы нужен был цикл ...
а если в одну строчку, то можно сделать так:
<?
$b = array(33, 34, 35, 36);
for($a = 0; $a < count($b); $a++)
{
if($b[$a]>30 && $b[$a]<40)
$result[] = $b[$a];
}
$result = implode (' ', $result);
echo "<table><tr><td>$result</td></tr></table>";
?>
|
| |
| |
|
|
| |
|
|
| |
для: kasmanaft
(18.09.2006 в 09:28)
| | | >мне казалось, что вы хотите в разные строки таблицы результат записывать, тогда бы нужен был цикл ...
Мне как раз таки нужно в разные строки! Точнее в ячейки таблицы. :)
Есть таблица. В каждую ячейку я буду вставлять значение которое истинно условию.
Я там только одно условие показал, а будет несколько. Вот.
К примеру:
<?php
$b = array(29, 41, 53, 13, 33, 4, 24, 47, 17, 58, 5, 36);
for($a = 0; $a < count($b); $a++)
{
if($b[$a]>0 && $b[$a]<20)
{
$result[0]=$a[$b]; // result[0]=мне только поставить на соответствующие ячейки
}
elseif($b[$a]>20 && $b[$a]<40)
{
$result[1]=$a[$b];
}
elseif($b[$a]>40 && $b[$a]<60)
{
$result[2]=$a[$b];
}
}
?>
|
В таблице должно отобразиться так:
------------------------
| 0-20 | 20-40 | 40-60 |
|------+-------+-------|
| 13 | 29 | 41 |
| 4 | 33 | 53 |
| 17 | 24 | 47 |
| 5 | 36 | 58 |
------------------------
|
| |
| |
|
|
| |
|
|
| |
для: Wita1y
(18.09.2006 в 10:19)
| | | Помоему условие надо сделать elseif($b[$a]>=20 && $b[$a]<40) { $result[1]= $a[$b]; } чтобы не пропускать круглые числа. И можно перед таблицей сделать $r1[]=$result[0]; $r2[]=$result[1]; $r3[]=$result[2]; ... И в таблице echo implode(" ", $r1); ... echo implode(" ", $r2); ..... | |
| |
|
|
| |
|
|
| |
для: EXP
(18.09.2006 в 13:17)
| | | >Помоему условие надо сделать elseif($b[$a]>=20 && $b[$a]<40) { $result[1]= $a[$b]; }
>чтобы не пропускать круглые числа.
Это ни к чему. :-)
>И можно перед таблицей сделать $r1[]=$result[0]; $r2[]=$result[1]; $r3[]=$result[2]; ... И в таблице echo implode(" ", $r1); ... echo implode(" ", $r2); .....
Сделал и работает, но при этом нужно будет каждый раз писать функцию implode(). Что мне конечно хотелось бы ограничиться echo $...;
Функция implode() работает на прямую с данными. Если нет данных то выдает ошибку.
Warning: implode() [function.implode]: Bad arguments. in ...\test.php on line 93
Допустим что я хочу только еще вести в форму значение и передать методом $_POST или $_GET но еще не ввел, а implode() уже выдает ошибку. Вот из-за этого я не хотел использовать implode(). В принципе можно условие поставить, но это еще чуть лишнего кода, когда и без того хватает.
У кого еще кaкие предложения? | |
| |
|
|
| |
|
|
| |
для: Wita1y
(18.09.2006 в 10:19)
| | | Можно так сделать:
<?php
$b = array(29, 41, 53, 13, 33, 4, 24, 47, 17, 58, 5, 36);
for($a = 0; $a < count($b); $a++)
{
if($b[$a]>0 && $b[$a]<20)
{
$result[0][]=$b[$a];
}
elseif($b[$a]>20 && $b[$a]<40)
{
$result[1][]=$b[$a];
}
elseif($b[$a]>40 && $b[$a]<60)
{
$result[2][]=$b[$a];
}
}
$first = implode ('<br>', $result[0]);
$second = implode ('<br>', $result[1]);
$third = implode ('<br>', $result[2]);
echo "<table border=1>
<tr><td>0-20</td><td>20-40</td><td>40-60</td></tr>
<tr><td>$first</td><td>$second</td><td>$third</td></tr>
</table>";
?>
|
Если надо, подправить условия еще, как говорил EXP | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(18.09.2006 в 14:59)
| | | И этот вариант тоже хорош, но только если массив нам известен. :-)
Прошу прощения.
Мне надо было заранее сказать что массив будет заполняться методом $_POST или $_GET.
А то уже замучал тут некоторых. :-/ | |
| |
|
|
| |
|
|
| |
для: Wita1y
(18.09.2006 в 15:14)
| | | Ну нужно заполнить массив и он тоже будет известен :) | |
| |
|
|
| |
|
|
| |
для: kasmanaft
(18.09.2006 в 15:38)
| | | Это понятно что будет известен.
А если страница только загрузилась, что тогда, во все ячейки заполнять ошибки!? :-))) | |
| |
|
|
| |
|
|
| |
для: Wita1y
(18.09.2006 в 15:40)
| | | Нет, можно проверить сначала, пустой массив или нет .. несколько строк ничего не испортит ... да и в любом случае, всё лучше проверять ...
if (count($result[0]) > 0)
$first = implode ('<br>', $result[0]);
else $first = 'таких нет';
|
ну и
if (count($b) > 0)
for($a = 0; $a < count($b); $a++)
|
| |
| |
|
|
| |
|
|
| |
для: kasmanaft
(18.09.2006 в 16:02)
| | | Вместо условия стоит @ перед каждой переменной, чтоб не выдавал ошибку.
Я её поставил потому что все остальное работает. :-))) | |
| |
|
|