我无法获得我的要求的逻辑。
让我们考虑一下我有一个数组
Array
(
[0] => 1
[1] => 1
[2] => 2
[3] => 1
[4] => 3
[5] => 3
)
如果数组元素与前一个元素匹配,我想在基础上拆分下面的数组。 即,在上面的示例中,[1]处的值与[0]处的值匹配。因此将其放入与[0]相同的数组中。现在检查[2]处的值是否与[1]处的值匹配,如果匹配则将其放入同一个数组中,如果不将其放入不同的数组中。这个过程还在继续。
以下是所需输出的示例。
Array
(
[0] => 1
[1] => 1
)
Array
(
[0] => 2
)
Array
(
[0] => 1
)
Array
(
[0] => 3
[1] => 3
)
提前感谢您的帮助。
贾斯汀
答案 0 :(得分:1)
你可以在检查前一个元素的循环中获得该结果。输出可以是一个数组数组! (或者你喜欢的任何东西......在这里做你的事)
$array1 = array(1, 1, 2, 1, 3, 3);
$output_array=array();
$previous_value="";
$output_array_index=0;
foreach ($array1 as $value) {
if($value != $previous_value){
$output_array_index+=1;
}
$output_array[$output_array_index][]=$value;
$previous_value=$value;
}
print_r($output_array);
所以,如果您需要更多指针,请告诉我!数组逻辑很有趣,php会让你做很多,开箱即用。虽然没有涵盖这个具体的需求,但是看看手册中有一分钟,它将为您节省时间,保证http://php.net/manual/en/ref.array.php
答案 1 :(得分:0)
这个问题有点令人困惑,但如果我正确理解它,听起来并不难实现。您需要做的就是有一个检查用户输入的临时数组(或数组列表)。如果该用户输入恰好与先前的输入相同(您可以保留计数器变量并检查是否ArrayList.get(counter) == ArrayList.get(counter-1)
)。继续向这个临时arrayList添加内容,一旦你有一个不同的数字,只需遍历arraylist并将其添加到一个新数组。
您必须考虑的另一个问题是如何存储所有这些数组。为此,您可能想要创建一个包含Arrays的ArrayList。这样,在找到与上一个输入不同的用户输入后,您可以使用ArrayList类提供的toArray
方法,并将其添加到包含所有单独数组的ArrayList中!
希望这有帮助!