这是我的PHP程序的一部分。
//for example: $rec_count = 30
$totalpages=(int)$rec_count/10;
$index=0;
$pageslink[$totalpages]='';
while($index <= $totalpages ){
$pageslink['index']=$index;
echo '<br>Index: '.$index.'<br>';
echo '<br>Page '.$pageslink['index'].' ';
$index++;
}
print_r($pageslink);
结果如下:
Index: 0
Page 0
Index: 1
Page 1
Index: 2
Page 2
Index: 3
Page 3 Array ( [3] => [index] => 3 )
它应该是pageslink[0] = 1; pageslink[1 ]= 2; pageslink[3] = 3;
,但当我print_r()
是pageslink
数组时,只有3作为一个值。我一直试图找出为什么在数组中只插入3作为值。
我是一个初学者,所以提前感谢你的帮助。我们将不胜感激。
在这个答案的简短版本中,PHP中的数组从0
开始计数,而不是从1
开始计数。因此,在第一个循环中它将是0
,在第二个循环中是1
,依此类推
您正在使用
$pageslink['index'] = $index;
这意味着您将数组中具有命名关键字'index'
的项设置为变量$index
的值,而不是使用$index
作为关键字。
在PHP(和许多其他语言)中,可以用index
数字(0、1、2等)或单词(named key
)引用数组中的项。例如:
$myArray = ['John', 'London'];
echo $myArray[0]; // John
echo $myAray[1]; // London
或
$myArray = ['name' => 'John', 'city' => 'london'];
echo $myArray['name']; // John
echo $myArray['city']; // London
现在要做的是在每个循环中将数组中的同一项(您正在调用index
的项)设置为新值,覆盖其旧值。因此,在所有循环之后,您将只保存最后一个值。
你想要这样的东西:
$pageslink[$index] = $index + 1;
这将转化为:
$pageslink[0] = 1; // first loop
$pageslink[1] = 2; // second loop
$pageslink[2] = 3; // third loop
顺便说一下,在您的示例代码中,for循环会更干净:
$rec_count = 30
$totalpages=(int)$rec_count/10;
$pageslink = array(); // this is how to create an array, not with ''
for($i=0;i<$totalpages;$i++){
$pageslink[] = $i;
}
print_r($pageslink);
如果您在这里使代码过于复杂,请尝试:
$totalpages=(int)$rec_count/10;
$index=0;
$pageslink = array();
while($index <= $totalpages ){
$pageslink[]=$index+1;
echo '<br>Index: '.$index.'<br>';
echo '<br>Page '.$pageslink[$index].' ';
$index++;
}
print_r($pageslink);
但是这个代码非常奇怪。您只需创建n
元素的数组。
你能解释一下你想在这里实现什么吗?