本帖最后由 LonelyMosquito 于 2010-12-30 18:09:52 编辑

解决方案 »


  1. $a=array("2211012301349494262"=>array("m"=>"5KC5a0SDPTg"));
    echo "<pre/>";
    var_dump($a);//我的输出
    array(1) {
      [2211012301349494262]=>
      array(1) {
        ["m"]=>
        string(11) "5KC5a0SDPTg"
      }
    }
      

  2. $a=array("2211012301349494262"=>array("m"=>"5KC5a0SDPTg"));
    echo "<pre/>";
    var_dump($a);//我的输出//mac
    array(1) {
      [2211012301349494262]=>
      array(1) {
        ["m"]=>
        string(11) "5KC5a0SDPTg"
      }
    }
    //ubuntu 10
    array(1) {
      ["2211012301349494262"]=>
      array(1) {
        ["m"]=>
        string(11) "5KC5a0SDPTg"
      }
    }
      

  3. 是否是PHP版本问题?ubuntu和mac应该是不一样的吧?
      

  4. 这个和服务器本身的配置有关,记得不知在哪本书上看过,最好尽量避免数字字符串建立索引。
    PHP会自动将其当作数字索引来处理,不过,这样有时候会带来一些麻烦。如果这个数字不是很大,它一定是以数字索引方式对待。$a=array("22110"=>array("m"=>"5KC5a0SDPTg"));//两边显示的应该都是:array(1) {
      [221101]=>
      array(1) {
        ["m"]=>
        string(11) "5KC5a0SDPTg"
      }
    }
    如果这个数字当前已经超过PHP预设置,就自动当作字符串索引处理的。
    $a=array("2211000000000000000000000000000000"=>array("m"=>"5KC5a0SDPTg"));//两边显示的应该都是:array(1) {
      ["2211000000000000000000000000000000"]=>
      array(1) {
        ["m"]=>
        string(11) "5KC5a0SDPTg"
      }
    }
    建议LZ如果确定要以字符串形式索引,就在数字前加个字母或者下划线;如果确定要以数字形式索引,确保这个数字尽量小一些。LZ,散分吧:)
      

类似问题 »