这是我的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作为值。
我是初学者,所以提前感谢您的帮助。非常感谢。
答案 0 :(得分:0)
您正在使用
$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);
答案 1 :(得分:0)
在这个答案的简短版本中,PHP中的数组从0
开始计数,而不是1
。因此,在第一个循环中,它将是0
,第二个循环将是1
,依此类推。
答案 2 :(得分:0)
你在这里使代码复杂化,试试:
$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
元素数组。
你能解释一下你在这里想要达到的目标吗?