您可以像试试这样分开:
$string = "txn_status=0|txn_msg=success|txn_err_msg=NA|clnt_txn_ref=969239|tpsl_bank_cd=470|tpsl_txn_id=192630337|txn_amt=1.00|clnt_rqst_meta={itc:NIC~TXN0001~122333~rt14154~8 mar 2014~Payment~forpayment}{custname:test}|tpsl_txn_time=26-12-2015 15:56:20|tpsl_rfnd_id=NA|bal_amt=NA|rqst_token=hdfs-df-jkfhskjfhsjkd|hash=jhdsfs54367jhf"; $firstArray = explode("|", $string); foreach ($firstArray as $key => $value) { $newArr = explode("=", $value); $myRequiredArr[$newArr[0]] = $newArr[1]; } echo ""; // just for formatting print_r($myRequiredArr); // print your result结果是:
Array ( [txn_status] => 0 [txn_msg] => success [txn_err_msg] => NA [clnt_txn_ref] => 969239 [tpsl_bank_cd] => 470 [tpsl_txn_id] => 192630337 [txn_amt] => 1.00 [clnt_rqst_meta] => {itc:NIC~TXN0001~122333~rt14154~8 mar 2014~Payment~forpayment}{custname:test} [tpsl_txn_time] => 26-12-2015 15:56:20 [tpsl_rfnd_id] => NA [bal_amt] => NA [rqst_token] => hdfs-df-jkfhskjfhsjkd [hash] => jhdsfs54367jhf )
这不会给OP他们期望的结果.它将给出一个值列表,如"txn_status = 0",而OP要求txn_status为键,0为值.