Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数组范围,但有例外_Php_Arrays_Range - Fatal编程技术网

Php 数组范围,但有例外

Php 数组范围,但有例外,php,arrays,range,Php,Arrays,Range,在PHP函数范围中有一个起点、一个终点和一个步骤点 是否可以创建一个带有数字的数组,其中一些值不应该存在 $hundred_tens = range(120, 190, 10); 我需要号码220230,…290。。。920930..990,但不是200210…900910 我的解决方案: $hundreds = range(100, 800, 100); foreach ($hundred_tens as $value) { $add_numbers[] = $value

在PHP函数范围中有一个起点、一个终点和一个步骤点

是否可以创建一个带有数字的数组,其中一些值不应该存在

$hundred_tens = range(120, 190, 10);    
我需要号码220230,…290。。。920930..990,但不是200210…900910

我的解决方案:

$hundreds = range(100, 800, 100); 
foreach ($hundred_tens as $value) {
    $add_numbers[] = $value + $hundreds[0];
    $add_numbers[] = $value + $hundreds[1];
    $add_numbers[] = $value + $hundreds[2];
    $add_numbers[] = $value + $hundreds[3];
    $add_numbers[] = $value + $hundreds[4];
    $add_numbers[] = $value + $hundreds[5];     
    $add_numbers[] = $value + $hundreds[6];
    $add_numbers[] = $value + $hundreds[7];
}
$all_hundred_tens = array_merge($hundred_tens, $add_numbers);

我已经在一个新数组中添加了一个foreach,每个数组值
$数百
,并将该数组与
$100\u tens

合并。基本上,您创建一个for循环,从220到910,以10步为单位。在循环中检查数字是100还是100加10。如果不是,则将数字添加到数组中

要检查数字是否可被100整除,可以使用模块运算符
%


因此,
a%100==0
将得到true,如果
a
可被100整除,否则为false。对于百加十,您可以这样做:
(a-10)%100==0

您可以在整个范围内循环并排除不必要的数字

$hundred_tens = array();
foreach (range(100, 800, 10) as $number) {
    if ($number % 100 !== 0 && $number % 100 !== 10) {
        $hundred_tens[] = $number;
    }
}
也可以合并较小的范围:

$hundred_tens = array_merge(range(120, 190, 10), range(220, 890, 10), range(920, 990, 10));
哪一个更好取决于你有多少例外情况,以及它们是否在列表中

请参阅我下面关于
的评论(
更快,这里有一个示例(只有一行不同)

$100_tens=array();

对于($number=100;$number谢谢,所以我必须将其合并为7个类似的范围?我不希望也有300310400410500510600610701800810。那么最好只做一个范围并检查数字。我将更新
用于($number=100;$number Ok,但我以后需要像这样的数组中有更多的数字,但有更多的例外情况。如果您能给我一个例子,其中有一个for循环,也可以填充数组中所有需要的数字,那就太好了。(在第一个代码中,数组的末尾应该是990或1000)
$hundred_tens = array();
for ($number = 100; $number <= 1000; $number += 10) { 
    if ($number % 100 !== 0 && $number % 100 !== 10) {
        $hundred_tens[] = $number;
    }
}