关于数组的奇怪问题???????????
<?php
$arr[1]="blue";
$arr["1"]="red";$arr[-1]="blue";
$arr["-1"]="red";print_r($arr);
?>
为什么只打印出两个元素。。
Array (
[1] => red
[-1] => red
)为什么???一个是数字索引,一个是字符串相关。。????????????????

解决方案 »

  1.   

    赋值先后问题吧,数字1与字符串“1”没区别,你试下:
    <?php 
    $arr[1]="blue"; 
    $arr["1"]="red"; $arr[-1]="blue"; 
    $arr["-1"]="red"; print_r($arr); 
    ?>
    <?php  
    $arr["1"]="red"; 
    $arr[1]="blue";$arr[-1]="blue";
    $arr["-1"]="red"; print_r($arr); 
    ?>
      

  2.   

    在PHP里面都是混合类型的值所以你1 , "1" , '1' 或者 -1, "-1", '-1' 是等价的.自己先了解一下PHP的基础知识.......
      

  3.   

    这个问题你一下子很难理解的话.你
    <?php 
    $arr[1]="blue"; 
    $arr["1"]="red"; $arr[-1]="blue"; 
    $arr["-1"]="red"; print_r(array_keys($arr)); 
    ?> 
    打印下你认为的索引.
    结果如下
    应该很好理解了把
    Array ( [0] => 1 [1] => -1 ) 
      

  4.   

    key 可以是 integer 或者 string。如果键名是一个 integer 的标准表达方法,则被解释为整数(例如 "8" 将被解释为 8,而 "08" 将被解释为 "08")。key 中的浮点数被取整为 integer。PHP 中没有不同的数字下标和关联下标数组,数组的类型只有一种,它可以同时包含整型和字符串型的下标。