Php 基于增量数值的拆分数组
给定一个Php 基于增量数值的拆分数组,php,arrays,Php,Arrays,给定一个数组(),如下所示: Array ( [0] => 1 [1] => Lorem ipsum [2] => dolor sit [3] => amet [4] => 2 [5] => consectetur [6] => adipiscing elit [7] => adipiscing elit [8] => 3 [9] => Integer ne
数组()
,如下所示:
Array
(
[0] => 1
[1] => Lorem ipsum
[2] => dolor sit
[3] => amet
[4] => 2
[5] => consectetur
[6] => adipiscing elit
[7] => adipiscing elit
[8] => 3
[9] => Integer nec
[10] => odio
)
带有一组动态数字(1
,2
,3
,4
,5
,等等)
有什么更有效的方法可以达到这样的效果
Array
(
[1] => Array
(
[0] => 1
[1] => Lorem ipsum
[2] => dolor sit
[3] => amet
)
[2] => Array
(
[0] => 2
[1] => consectetur
[2] => adipiscing elit
[3] => adipiscing elit
)
[3] => Array
(
[0] => 3
[1] => Integer nec
[2] => odio
)
)
其中,递增的数组值充当拆分点,将数组拼接成单独的块:
(工作示例)
$exploded=array(
'1',
“Lorem ipsum”,
“多洛坐”,
“艾美”,
'2',
"奉献",,
“另类精英”,
“另类精英”,
'3',
“整数nec”,
“奥迪奥”
);
$array=array();
$a=假;
$count=1;
$arraycount=计数($exploded);
对于($i=0;$i<$arraycount;$i++)
{
$countstring=$count+1;
$countstring=(string)$countstring;
如果($分解[$i]==$count)
{
$array[$count][=$i];
$a=正确;
}
elseif($a==true&&$exploded[$i]==(字符串)$count)
{
$array[$count][=$i];
}
elseif($a==true&&$exploded[$i+1]!=$countstring)
{
$array[$count][=$i];
}
elseif($a==true&&$exploded[$i+1]==$countstring)
{
$array[$count][=$i];
$count++;
$a=假;
}
}
我认为这应该等同于您的代码:
$array = array();
$count = -1;
$nextcount = 1;
$arraycount = count($exploded);
for ($i = 0; $i < $arraycount; $i++) {
if ($exploded[$i] == $nextcount) {
$count++;
$nextcount++;
}
$array[$count][] = $exploded[$i];
}
$array=array();
$count=-1;
$nextcount=1;
$arraycount=计数($exploded);
对于($i=0;$i<$arraycount;$i++){
如果($分解[$i]==$nextcount){
$count++;
$nextcount++;
}
$array[$count][=$i];
}
我认为这应该等同于您的代码:
$array = array();
$count = -1;
$nextcount = 1;
$arraycount = count($exploded);
for ($i = 0; $i < $arraycount; $i++) {
if ($exploded[$i] == $nextcount) {
$count++;
$nextcount++;
}
$array[$count][] = $exploded[$i];
}
$array=array();
$count=-1;
$nextcount=1;
$arraycount=计数($exploded);
对于($i=0;$i<$arraycount;$i++){
如果($分解[$i]==$nextcount){
$count++;
$nextcount++;
}
$array[$count][=$i];
}
每个数字之间是否总是有三行文本?否。每个数字之间也有动态的文本行数。有人可能会告诉你,因为代码是有效的。$spolded
是否来自你“分解”的字符串?如果是这样的话,我们能看到那根绳子吗?@NickParsons是的,好主意。原始字符串仅为1 Lorem ipsum dolor sit amet 2 Concertetur Adipising elit Adipising elit 3整数nec odio
I在空格处分解@shingo也是一个好主意,我将在那里发布一篇文章,并很快删除这篇文章。每个数字之间总是有三行文字吗?没有。每个数字之间也有动态的文字行数。有人可能会告诉你,因为代码是有效的。$exploded
是否来自你“分解”的字符串?如果是这样的话,我们能看到那根绳子吗?@NickParsons是的,好主意。原始字符串仅为1 Lorem ipsum dolor sit amet 2 Concertetur Adipising elit Adipising elit 3整数nec odio
I在空格处分解@shingo也是个好主意,我会在那里发一篇帖子,并很快删除这篇。只需提醒一下,这将从2
而不是1
开始你的数组。您可以将$array[$count][]
更改为$array[$count-1][]
以解决此问题,谢谢。这是正确的。当然,$array=array\u值($array)代码>从0开始
darn obiwans。修正。只需一个提示,这将在2
而不是1
启动阵列。您可以将$array[$count][]
更改为$array[$count-1][]
以解决此问题,谢谢。这是正确的。当然,$array=array\u值($array)代码>从0开始
darn obiwans。固定的。