关于for循环的一个错误 哦,这个常识还是知道的,可是不清楚为什么用了count就会陷入死循环,我觉得count($arr)跟6等价,但是为什么会出错 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 当 $i 等于 6 时 $j 等于 5$arr[$j+1] = $arr[$j] 就是 $arr[6] = $arr[$j]这就给 $arr 增加了一个本不存在的元素很自然,count($arr) 就发生了变化循环中你有 print_r($arr); 难道还看不出这一点吗?正确的写法应该是$arr = array(5, 2, 4, 6, 1, 3);for($i=1;$i<count($arr);$i++) { $key = $arr[$i]; $j = $i-1; while($j>=0 && $arr[$j]>$key) { $arr[$j+1] = $arr[$j]; $j--; } $arr[$j+1] = $key;}Array( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6) 谢谢版主,我这设置好像是等全部运行完后才进行输出,所以一直看不到print_r的内容,多谢多谢 pdo 怎么创建mysql数据库 下拉菜单选择提交后能否让菜单内显示所选值 为什么英文能插入,中文却不行啊?高手帮帮忙~ 请问一个mysql查找的问题,急在线等...... 还是POSIX语法的正则式 类引用问题 关于php与mysql_connect与mysql_pconnect ftp_connect()命令为什么不能用!!!!~~~~~ $HTTP_GET_VARS?????????? 请教怎么把这里的文字改成点击图片跳转到某链接 急求!php转换成asp php 如何实现 跨域读取其他网站的cookie
$arr[$j+1] = $arr[$j] 就是 $arr[6] = $arr[$j]
这就给 $arr 增加了一个本不存在的元素
很自然,count($arr) 就发生了变化循环中你有 print_r($arr); 难道还看不出这一点吗?
正确的写法应该是$arr = array(5, 2, 4, 6, 1, 3);
for($i=1;$i<count($arr);$i++) {
$key = $arr[$i];
$j = $i-1;
while($j>=0 && $arr[$j]>$key) {
$arr[$j+1] = $arr[$j];
$j--;
}
$arr[$j+1] = $key;
}
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
[5] => 6
)