PHP数组片多数组非函数

PHP数组片多数组非函数,php,foreach,slice,Php,Foreach,Slice,下面将$scpar分为两种类型,一种包含前9个值,另一种包含前10到18的逗号分隔值 $scpar9 = array_slice($scpar,0,9); $scpar18 = array_slice($scpar,9,18); 然后,我们使用foreach并使用id参数$sid从其他字段获得相同的逗号分隔值 foreach ($scpar9 as $sid => $scpar) { 然后从其他类似的字段中获取信息 <b>'.$scpar.'</b>

下面将$scpar分为两种类型,一种包含前9个值,另一种包含前10到18的逗号分隔值

$scpar9 = array_slice($scpar,0,9);
      $scpar18 = array_slice($scpar,9,18);
然后,我们使用foreach并使用id参数
$sid
从其他字段获得相同的逗号分隔值

foreach ($scpar9 as $sid => $scpar) {
然后从其他类似的字段中获取信息

<b>'.$scpar.'</b> '.$sccomp[$sid].$scmen[$sid].
“.$scpar.”.$sccomp[$sid]。$scmen[$sid]。
这一切都很好,问题在于第二个9个字段

foreach ($scpar18 as $sid => $scpar) {
<b>'.$scpar.'</b> '.$sccomp[$sid].$scmen[$sid].
foreach($scpar18作为$sid=>$scpar){
“.$scpar.”.$sccomp[$sid]。$scmen[$sid]。
字段
$scpar
正确,但包含
[$sid]
的字段从第一个结果开始,而不是从第九个结果开始

有什么想法吗

Marvelous

创建新数组,其中包含来自原始数组的值,而不是键。在
foreach
循环中使用键在原始数组的上下文中没有意义,因为这些是来自新切片数组的键

使用
array\u slice($scpar,9,18,true)
也可以复制键,而不仅仅是值:

$scpar18 = array_slice($scpar, 9, 18, true);
                                  #    ^^^ preserve keys

如果要保留键($sid),则需要将array_slice的第四个参数设置为true,请参见需要使用的

保留密钥: 请注意,array_slice()将重新排序并重置数组索引 默认情况下。您可以通过将“保留_关键点”设置为来更改此行为 对


你为什么要把它们分成两个数组?一个
for
循环不是更好吗?你能给我解释一下它是如何工作的吗
   $scpar18 = array_slice($scpar,9,18, true);