可能重复:
PHP: “Notice: Undefined variable” and “Notice: Undefined index”
我在运行时获得“ranksection”数组并且在“ranksection”上实现ksort之后我想在null索引上向上移动其数据,因为我在打印ranksection之前向上移动数据如果有任何可用的数组我成功获得我想要什么,但它也给出错误“未定义索引”我不知道为什么我的代码,
$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);
结果是,
3
Array ( [1] => Self Introduction [2] => Experience in Econometrics and multivariate S [3] => Experience )
Array ( [0] => Self Introduction [1] => Experience in Econometrics and multivariate S [2] => Experience )
希望得到你的建议
答案 0 :(得分:3)
查看第二个数组的print_r部分,它以索引1开头,$ var分配给0。 现在,您正在尝试访问第0个索引。这就是你收到这个错误的原因。
尝试使用foreach
foreach($ranksection as $key => $value ) {
if ($ranksection[$key] != null) {
$sequence[$seqnum] = $ranksection[$key];
$seqnum++;
}
}
答案 1 :(得分:0)
将此作为for
循环的条件:
for ($var = 0; $var <= $sortvar - 1; $var++) {
-1
很重要,因为数组从0开始,然后是数组的长度减1。
答案 2 :(得分:0)
您应该在count()-1
循环中使用for
:
$sortvar = count($ranksection) -1;
$seqnum = 0;
for ($var = 0; $var <= $sortvar; $var++) {
或者,使用小于(不小于等于)运算符:
for ($var = 0; $var < $sortvar; $var++) {
答案 3 :(得分:0)
你将超越数组的末尾,因为:
$sortvar = count($ranksection); // This is 4
数组索引从0开始,但count返回数字,其中1是第一项,而不是0.执行此操作以修复它:
$sortvar = count($ranksection) - 1;
或更改&lt; = to&lt;
for ($var = 0; $var < $sortvar; $var++) {
if ($ranksection[$var] != null) {
$sequence[$seqnum] = $ranksection[$var];
$seqnum++;
}
}