我有一个万的数组,数组内容形式为
arr[0]='name=hello';
arr[1]='nick=luck';
arr[2]='love=sky';
arr[3]='team=1000';
等等……
arr[10000]='user=haha';
随便举得例子,然后我想生成一个$obj = new stdClass();
使得:
$obj->name = 'hello';
$obj->nick = 'luck';
$obj->love = 'sky';
$obj->team = '1000';
等等……
$obj->user = 'haha';求一个运行效率最快的方法,实现的话我用explode来着,不过感觉效率不好。所以求大家帮忙给的效率高的算法。

解决方案 »

  1.   


    $arr[0]='name=hello';
    $arr[1]='nick=luck';
    $arr[2]='love=sky';
    $arr[3]='team=1000';
    parse_str(implode('&',$arr),$out);
    $out = (object)$out;
    print_r($out);
      

  2.   

    这样效率如何?
    $arr[0]='name=hello';
    $arr[1]='nick=luck';
    //……
    $arr[2]='love=sky';
    $arr[3]='team=1000';
    parse_str(join('&', $arr), $tmp);
    $obj = (object)$tmp;
    print_r($obj);
    /**
    stdClass Object
    (
        [name] => hello
        [nick] => luck
        [love] => sky
        [team] => 1000
    )
    /**/
      

  3.   

    $arr[0]='name=hello';
    $arr[1]='nick=luck';
    $arr[2]='love=sky';
    $arr[3]='team=1000';parse_str(join('&', $arr), $p);
    settype($p, 'object');print_r($p);stdClass Object
    (
        [name] => hello
        [nick] => luck
        [love] => sky
        [team] => 1000
    )
      

  4.   

    这个算法比explode快吗?在测试之前,单凭个人理解,好像效率不如explode?
      

  5.   

    应该会比explode快。
    php执行很慢的,每个变量都要查哈希表,parse_str等内置函数是native code,效率高一些。