Я смотрел здесь, и многие говорили, что нет способа иметь оператора!<, потому что если что-то есть!< тогда это должно быть = .. Но я пытаюсь определить условия, чтобы не включать результаты из цикла foreach.
Для этого примера результаты из foreach возвращают 25 результатов, и каждый $ results содержит значение, увеличенное на 10.
for ($block = 10; $block <= 250; $block+=10 ) {
echo $block . '<br>';
}
Это будет результатом
$a = 10
$b = 20
$c = 30
$d = 40
$e = 50
$f = 60
$g = 70
$h = 80
$i = 90
$j = 100
... and so no
Внутри цикла foreach
$dropBefore =30;
$dropAfter =90;
if ($block >= $dropBefore && $block <= $dropAfter - 1){
Результаты
$c = 30
$d = 40
$e = 50
$f = 60
$g = 70
$h = 80
$i = 90
Моя проблема сейчас, я хочу нацелиться на $ d, $ e, $ f, чтобы удалить и оставить оставшиеся результаты
Где выглядят мои результаты
$c = 30
$g = 70
$h = 80
$i = 90
I have 2 variables
$start_value = 40
$finish_value = 60
if($block != $startValue && !<$finishValue){
//$block != $startValue removes $d,
but !<$finishValue is invalid and I get the syntax error unexpected !
Если я говорю
if($block != $startValue && < $finishValue){
//$block != $startValue removes $d,
but < $finishValue removes everything greater than $f and $e and $f remains
$e = 50
$f = 60
Как мне сказать, сохранить все, кроме удаления $ startValue, $ finishValue и всего, что между ними?
Ваш вопрос предполагает, что создается целое множество отдельных переменных, но этого не происходит с предоставленным вами кодом. Ваш вопрос в отношении манипулирования результатами, полученными из итерации, интересен и, безусловно, справедлив. Приведенный ниже код соответствует указанным вами ограничениям и исключениям. Если вы хотите также сохранить результирующие значения, которые отображаются, то использование массива будет держать все в порядке, как показано ниже:
<?php
$start_value = 40;
$finish_value = 60;
$dropBefore = 30;
$dropAfter = 90;
$let = 'a';
$arr = null;
for ($block = 10; $block <= 250; $block+=10 ) {
if (( $block >= $dropBefore ) && ( $block <= $dropAfter ) ) {
if ( $block >= $start_value && $block <= $finish_value ) {
continue;
}
echo $block,"\n";
$arr[$let++] = $block;
}
}
var_dump($arr);
Любые значения между 40 и 60 будут просто игнорироваться, поскольку цикл снова продолжается сверху, вместо выполнения оператора ‘echo $ block, «\ n». Я также обнаружил, что мне пришлось исключить «-1» по отношению к<= $ dropAfter -1 ‘, поскольку это предотвратило появление’ 90 ‘в результате. Я сделал ключи массива алфавитными, если вы предпочитаете такие ключи.
Выход:
30
70
80
90
array(4) {
["a"]=>
int(30)
["b"]=>
int(70)
["c"]=>
int(80)
["d"]=>
int(90)
}
Что-то !< на самом деле> =, а не =.
Но вы хотите ценностей < чем $ startValue ИЛИ> чем $ finishValue, чтобы показать, поэтому:
if($block < $startValue || $block > $finishValue) echo $block
Не уверен, почему ты изменил свою логику. Вы использовали почти то же самое несколько строк выше.