囧 我的代码必须这么做array['111'] = 2结果变成了array[111] = 2
但是
php会自动把 数字字符 转换成数字做索引 
有没的办法不让他转换

解决方案 »

  1.   

    你管他那个干嘛呢...$Test=array('1111'=>2);echo $Test['1111'];
      

  2.   


    问题不在这里 我要 取这个key取出来变成 整形就game over了
      

  3.   

    其实我是因为 mongo要这样 $m = new Mongo();
    $db = $m->selectDB('test');
    $collection = new MongoCollection($db, 'phpmanual');// search for documents where 5 < x < 20
    $rangeQuery = array('222' => array( '$gt' => 5, '$lt' => 20 ));$cursor = $collection->find($rangeQuery);
    foreach ($cursor as $doc) {
        var_dump($doc);
    }
    这样就悲剧了 mongo 如果 key 是数字 就会出错 迥
      

  4.   

    那你把key转为字符串不就行了。 "$key" 或者(string)$key;
      

  5.   

    $rangeQuery = array('222' => array( '$gt' => 5, '$lt' => 20 ));
    这样实际传递出去的 是222 而不是‘2222’
    nongo 不支持 数字类型
      

  6.   

    column名不可为数字,问题就解决了。
      

  7.   


    真没办法让 php 不转换吗?
      

  8.   

    转义!
    mysql:
    select `222` from tbl_namesssql
    select [222] from tbl_name
      

  9.   

    mongo也支持转义吧..select `222` from tbl_name
      

  10.   

    如果mongo就这么写的...
    那你只好自己改代码了吧....
    记得把patch发给mongo造福后人....
      

  11.   

    数组可以用字符串作为index的。