<?php
$r=array('a'=>3,'A'=>1,'b'=>4,'Z'=>2);
sort($r);
 for ($i=0;$i<4;$i++)
{
 echo $r[$i] . "<br/>";
}
echo "<br/>" . $r['A'];
?>编译的时候显示1
2
3
4Notice: Undefined index: A in E:\xampp\htdocs\xampp\test6.php on line 8
我知道是sort函数用的不对,但是我想知道为什么还能输出1234,而且显示下面的那些警告?麻烦高手帮忙解析下内部编译的时候出了什么问题?谢谢

解决方案 »

  1.   

    sort()之后,数组的索引变成了数字索引,所以原来的a,A,z,b索引都不存在了。。
    如果要保持索引,请用asort()函数
      

  2.   

    简单的问题你给弄复杂了
    sort($r);     //  注释:本函数为数组中的单元赋予新的键名。原有的键名将被删除。
    print_r( $r); // Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 )