我已经看过这里,很多人都说没有办法让操作员!&lt ;,因为如果有的话!<然后它必须是= ..但我试图定义条件不包括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以及它们之间的任何内容?
答案 0 :(得分:1)
东西!&lt;实际上是&gt; =,而不是=。
但是你想要价值&lt;比$ startValue OR&gt;比$ finishValue显示,所以:
if($block < $startValue || $block > $finishValue) echo $block
不确定为什么改变了你的逻辑。你上面几行使用的几乎相同。
答案 1 :(得分:1)
您的问题表明会创建一大堆单独的变量,但这不会发生在您提供的代码中。关于操纵迭代得到的结果的问题是有趣的,当然也是公平的。以下代码符合您指定的限制和排除。如果您还希望存储显示的结果值,那么使用数组可以保持组织良好,如下所示:
<?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之间的任何值都将被忽略,因为循环再次继续在顶部,而不是执行&#39; echo $ block,&#34; \ n&#34;&#39;声明。我还发现我必须消除&#39; -1&#39;关于&#39;&lt; = $ dropAfter -1&#39;因为它阻止了&#39; 90从出现在结果中。如果您喜欢这样的键,我会按字母顺序排列数组的键。
输出:
30
70
80
90
array(4) {
["a"]=>
int(30)
["b"]=>
int(70)
["c"]=>
int(80)
["d"]=>
int(90)
}