For loop 未定义的偏移量???PHP我的代码附加

For loop 未定义的偏移量???PHP我的代码附加,for-loop,php,For Loop,Php,可能重复: 我在运行时得到“ranksection”数组,在“ranksection”上实现ksort后,我想在空索引上向上移动它的数据,因为我在打印ranksection时,在向上移动它的数据之前,如果有任何空闲数组,我就成功地得到了我想要的,但它也给出了错误“Undefined index”,我不知道我的代码为什么 $sortvar = count($ranksection); $seqnum = 0; for ($var = 0; $var <= $sortvar; $var++

可能重复:

我在运行时得到“ranksection”数组,在“ranksection”上实现ksort后,我想在空索引上向上移动它的数据,因为我在打印ranksection时,在向上移动它的数据之前,如果有任何空闲数组,我就成功地得到了我想要的,但它也给出了错误“Undefined index”,我不知道我的代码为什么

$sortvar = count($ranksection);
$seqnum = 0;

for ($var = 0; $var <= $sortvar; $var++) {
  if ($ranksection[$var] !=  null) {
    $sequence[$seqnum] = $ranksection[$var];
    $seqnum++;
  }
}

print_r($sortvar);
print_r($ranksection);
print_r($sequence);

希望得到您的建议

将此作为您的
for
循环的条件:

for ($var = 0; $var <= $sortvar - 1; $var++) {
$sortvar = count($ranksection) -1;
$seqnum = 0;

for ($var = 0; $var <= $sortvar; $var++) {

for($var=0;$var您应该在
for
循环中使用
count()-1

for ($var = 0; $var <= $sortvar - 1; $var++) {
$sortvar = count($ranksection) -1;
$seqnum = 0;

for ($var = 0; $var <= $sortvar; $var++) {
$sortvar=count($rankssection)-1;
$seqnum=0;

对于($var=0;$var您将越过数组的末尾,因为:

$sortvar = count($ranksection); // This is 4
数组索引从0开始,但count返回的数字中,1是第一项,而不是0。请执行以下操作以修复它:

$sortvar = count($ranksection) - 1;

或者更改查看第二个数组的打印部分,它从索引1开始,并将$var分配给0。 现在,您正在尝试访问第0个索引。这就是为什么会出现此错误

尝试使用
foreach

foreach($ranksection as $key => $value ) {
  if ($ranksection[$key] !=  null) {
    $sequence[$seqnum] = $ranksection[$key];
    $seqnum++;
  }
}

仅当您尝试访问不存在的数组元素时,才会发生此错误。例如,如果$array有3个元素,那么如果您尝试访问数组元素$array[3],依此类推。@Sabin数组有3个元素,因此它会找到它,第二件事是for循环,它不会在3个索引之后运行value@SyedRaza,你在这里有问题吗($var=0;$var感谢您的回复it help me“foreach($ranksection as$key=>$value)”一行实际上在做什么???阅读文档。
foreach($ranksection as $key => $value ) {
  if ($ranksection[$key] !=  null) {
    $sequence[$seqnum] = $ranksection[$key];
    $seqnum++;
  }
}