求一個簡化代碼的思路

來源:互聯網
上載者:User
關鍵字 php
{a:1,b:2,c:3} 一個類似這樣的字串。目的是輸入a則返回1、輸入b返回2.。以此類推。
自己寫了一個代碼,無奈看著太冗雜。
我的思路是把他寫入一個數組。然後返回。求更簡的代碼,

"1","b"=>"2","c"=>"3") */$str="{a:1,b:2,c:3}";$search=array("{","}");$str=str_replace($search, "", $str);$arr=explode(",", $str);$arr1=array();for ($i=0;$i

回複內容:

{a:1,b:2,c:3} 一個類似這樣的字串。目的是輸入a則返回1、輸入b返回2.。以此類推。
自己寫了一個代碼,無奈看著太冗雜。
我的思路是把他寫入一個數組。然後返回。求更簡的代碼,

"1","b"=>"2","c"=>"3") */$str="{a:1,b:2,c:3}";$search=array("{","}");$str=str_replace($search, "", $str);$arr=explode(",", $str);$arr1=array();for ($i=0;$i

例子實在太像json了,所以讓來源搞成標準的json肯定是最好的

一定是這種樣子的話,正則是更簡單的寫法

$str="{a:1,b:2,c:3}";preg_match_all('/(\w+):(\d+)/', $str, $matches);$arr = array_combine($matches[1], $matches[2]);var_dump($arr);

$str=trim("{a:1,b:2,c:3}", '{}');//trim就行了$arr=explode(",", $str);$arr1=array();for ($i=0, $l = count($arr);$i<$l;$i++){    $_arr = explode(":", $arr[$i]);    $arr1[$_arr[0]] = $_arr[1];}print_r($arr1);

再想簡化就是修改你的原始字串了,你原來的那種字串也是json,不過格式不是太好。標準格式類似 {"a":1,"b":2,"c":3},php對json字串的要求比較嚴格,而js對此比較寬鬆。
這樣的話,$arr = json_decode('{"a":1,"b":2,"c":3}');就是a=1,b=2,c=3的數組了。

那個"字串"不是JSON嗎? 你要寫一個JSON解析器嗎?

function foo($str, $key){    $obj = json_decode($str, true);    return $obj[$key];}

這玩意不就是個json, 你用php帶的json_decode解析下不就行了

  • 相關文章

    聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.