有一个从0到10000的数字数组
$a = array();
$a = range(0,10000);
我有一些来自数据库的动态值比如数组
$b = array("100-200","400-500","700-900");
所以我想要一个像
这样的数组array("0-100","200-400","500-700","900-10000");
例如->如果我从0开始一个值,那么它将在100时中断。那么我将得到0-100作为数组的第一个元素,然后在200之前什么都不会发生。同样,这个值将会开始,然后到400,然后停止,然后我得到200-400。在那之后,直到500年什么都不会发生。还是从500开始,到700结束。所以我将第三个元素设为500-700等等…
有人能帮忙吗?
如果你想让你的范围作为数组的字符串元素,试试这个:
<?php
$b = array("400-500","700-900","100-200");
asort($b);//new line to sort the ranges
$MIN = 0;
foreach($b as $rang){
$limits = explode('-', $rang);
$result[] = $MIN." - ".$limits[0];
$MIN = $limits[1];
}
$result[] = $MIN." - 10000";
print_r($result);
?>
你可以试试这样
<?php
$b = array( "100-200","400-500","700-900" );
$c = array();
$starting = 0;
$ending = 100000;
$last = $starting;
$a = array(); // not being used
$a = range( $starting, $ending ); // not being used
foreach( $b as $k => $v )
{
$values = explode( '-' , $v);
if ( $values[0] > $starting && $values[0] < $ending )
{
$c[] = $last.'-'.$values[0];
$last = $values[1];
if ( $last <= $ending && $k == count( $b ) -1 )
{
$c[] = $last.'-'.$ending;
}
}
}
print_r( $c );
?>
请记住,我没有使用原始的$a
数组做任何事情。我不明白它的目的,除非它实际上不是从一个范围生成的,如果是这样,这也应该改变