$array = array('name'=>'coder','gender'=>'man','password'=>'codeman');一个这样的数组,要转换成字符串: name:coder,gender:man,password:codeman 除了foreach循环做字符串连接,还有其他办法么?
然后,一个字符串: name:coder,gender:man,password:codeman  要回转成上面的数组,除了 explode 然后再 explode之外有其他办法么?

解决方案 »

  1.   

    如果是顺序遍历数组的话,foreach和explode已经是最有效率的方法了。除非你有其他特定的条件。
      

  2.   

    $array = array('name'=>'coder','gender'=>'man','password'=>'codeman');
    $resultstr=json_encode($array);
    $resultstr=str_replace('","',',',$resultstr);
    $resultstr=str_replace('":"',':',$resultstr);
    $resultstr=str_replace('{"','',$resultstr);
    $resultstr=str_replace('"}','',$resultstr);
    echo $resultstr;转回去的时候,如果value里有:或,用上面的方式反转就不行了。不知道你要做什么??
    在页面里用的话直接json_encode/json_decode。
    如果要做数组加解密,就:
    base64_encode(json_encode($array));
    json_decode(base64_decode($arraystr));关键是你要说你要做什么??
      

  3.   

    如果value里有:或,
    那即使是用explode也有问题
      

  4.   

    php数组key,hash方式,,,本身查找效率非常高了就算其他方式,按照你的意思,怎么逃得过遍历?第二个字符串,如果跟前面的数组有关,倒是有优化的余地,看你怎么得来的数据,也许不需要通过反转,而是直接在前面的数组中,或者多个数组中操作另外当数组比较大的时候,in_array()的效率是比较低的,有可能的话,通过key来找数据,理由在开头
      

  5.   

    方法比较巧,不过,如果有中文,应该不是LZ想要的我是跟着瞎忙活,不知道LZ具体要干啥
      

  6.   

    php已经提供了相关函数,不用才是浪费资源$array = array('name'=>'coder','gender'=>'man','password'=>'codeman');$r = str_replace('&', ',', http_build_query($array)); 
    echo $r; //name=coder,gender=man,password=codemanparse_str(str_replace(',', '&', $r), $a);
    print_r($a); //codemanArray ( [name] => coder [gender] => man [password] => codeman ) 
      

  7.   

    json_decode(base64_decode($arraystr)); 这样就可以得到了
      

  8.   

    你这个数组不就是要转成json么 直接用php的内置函数