|
|
|
| Вот простая задача:
for ( $i = 0; $i <= ЧИСЛО; $i++ )
{
if ( $Array[$i] == 'ЗНАК' ) break;
}
|
Этим несложным кодом я останавливаю работу цикла, когда происходит совпадение и, например, что-нибудь вывожу:
Но вот другая задача! Как сделать так, чтобы некоторое действие начало выполняться лишь после того, как произойдёт равенство $Array[$i] == 'ЗНАК'. Т.е. чтобы до того, как этот ЗНАК не появится ничего не происходило, а дальше, до нового сопадения $Array[$i] == 'ЗНАК_ДРУГОЙ' - выполнялся код. | |
|
|
|
|
|
|
|
для: iriter
(28.08.2008 в 00:36)
| |
$flag = 1;
for ( $i = 0; $i <= ЧИСЛО; $i++ )
{
if ( $Array[$i] == 'ЗНАК' and !isset($flag)) break;
if ( $Array[$i] == 'ЗНАК' and isset($flag))
{
unset($flag);
// выполняется нужный код
}
}
|
Если я правильно понял, что требуется, то так, как вариант. | |
|
|
|
|
|
|
|
для: Mookapek
(28.08.2008 в 00:59)
| | Спасибо большое! Сегодня глаза закрываются. Завтра обязательно попробую. | |
|
|
|
|
|
|
|
для: Mookapek
(28.08.2008 в 00:59)
| | Mookapek, а почему после нужного кода не поставилть сразу break, а делать вот такие выкрутасы с $flag? | |
|
|
|
|
|
|
|
для: BinLaden
(28.08.2008 в 01:33)
| | iriter сказал, что цикл должен работать до нового совпадения. | |
|
|
|
|
|
|
|
для: Mookapek
(28.08.2008 в 01:44)
| | Человеку надо просто про switch() рассказать. | |
|
|
|
|
|
|
|
для: BinLaden
(28.08.2008 в 02:28)
| | человеку надо про конечный автомат рассказать, да разве ж он станет слушать... | |
|
|
|
|
|
|
|
для: Mookapek
(28.08.2008 в 00:59)
| | Mookapek, спасибо за идею! ;o) | |
|
|
|
|
|
|
|
для: iriter
(28.08.2008 в 00:36)
| | break не пробовали? | |
|
|
|
|
|
|
|
для: mihdan
(28.08.2008 в 01:10)
| | В моём коде break; есть. | |
|
|
|
|
|
|
|
для: iriter
(28.08.2008 в 00:36)
| | Получилось!
Немного изменил код в начале мне приведённый!
Файл "file.dat":
kfdkgjkdfjgk
ldfkjhljdfl dh
dfhdfhdsf dfjsfh dfh dfh
dfshdfhdf dhfdfh
dfhdfhd hdf hdfh dfh
()hfdhdhhdfhdfh dfh dfh
54545
584484
848484
gfhfh()
fghd hfdh fg
h fdh dghfg f hf
hfghfjhfghfghfh
|
Код "index.php":
$Array = file ( './file.dat' );
$Count = count ( $Array );
/* Необходимая задача: вывод в данном примере должен быть только строк:
54545
584484
848484 */
$flag = false;
for ( $i = 0; $i <= $Count; $i++ )
{
if ( trim ( $Array[$i] ) == '()hfdhdhhdfhdfh dfh dfh' ) { $flag = true; continue; }
if ( trim ( $Array[$i] ) == 'gfhfh()' ) { $flag = false; break; }
if ( $flag )
{
echo $Array[$i].'<br/>';
}
}
/* End; */
|
Вывел на экран:
Всем спасибо! | |
|
|
|