使用PHP,我试图根据值组将数组分成多个数组。这些组基于1到5之间的值。但这是困难的部分......
我需要循环遍历数组并将第一组介于1和5之间的值放在它们自己的数组中,然后将下一组介于1和5之间的值放在它们自己的数组中,依此类推。 / p>
但每组不会总是包括1,2,3,4,5。有些团体可能是随机的。
示例:
1,1,2,2,3,4,5 - 这将是一个小组
1,2,3,4,4,4 - 这将是一个小组
1,2,3,3,5 - 这将是一个小组
2,2,3,3,5 - 这将是一个小组
所以我不能只测试具体数字。
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 1
[6] => 2
[7] => 3
[8] => 4
[9] => 4
[10] => 1
[11] => 1
[12] => 3
[13] => 4
[14] => 5
)
任何想法?
答案 0 :(得分:1)
我只是检查当前值是否大于之前的值,如果是,则开始一个新组。
$groups = array();
$groupcount = 1;
foreach( $array as $key=>$value )
{
if( $key > 0 ) // there's no "previous value" for the first entry
{
if( $array[$key] < $array[$key-1] )
{
$groupcount = $groupcount + 1;
}
}
$group[groupcount][] = $value;
}
答案 1 :(得分:1)
这是你在找什么?
$groups = array();
$cur = array();
$prev = 0;
foreach ($numbers as $number)
{
if ($number < $prev)
{
$groups[] = $cur;
$cur = array();
}
$cur[] = $number;
$prev = $number;
}
if ($cur) $groups[] = $cur;
未测试。 (编辑:纠正了一些明显的错误。)