在開發的時候遇到了對一個數組中的數據進行多次分割之後,取得想要的數據,總結了以下代碼,希望對大家有所幫助
/**
* @desc 數據分割
* @author Zy
* @since
* @param
* @return void
*/
function GetArrayKey($data)
{
$str=explode("|",$data);
$strkey=explode("?",$str[1]);
foreach (explode("&",$strkey[1]) as $v ) {
$key=explode("=",$v);
if($key[0]=="act") {
$get_key["act"]=$key[1];
}
if($key[0]=="F") {
$get_key["F"]=$key[1];
}
if($key[0]=="V") {
$get_key["V"]=$key[1];
}
if($key[0]=="user_id") {
$get_key["user_id"]=$key[1];
}
}
return array (
'time' => $str[0] ,
'strkey' => trim($strkey[0]) ,
'act' => "act=".$get_key["act"] ,
'F'=> $get_key["F"],
'V'=> $get_key["V"],
'user_id'=> $get_key["user_id"],
'get_data' => trim($strkey[1])
);
}
//調用上面的方法
$key=GetArrayKey("00:01:24| /api/get.html?act=GetUserOrderList&F=android
&V=1.8.0&key=1445961683170&sign=061cffe2b3ee&user_id=709&o_type=1&page=1
&size=100 ");
//得到的數據格式如下:
array(7) {
["time"]=>
string(8) "00:01:24"
["strkey"]=>
string(13) "/api/get.html"
["act"]=>
string(20) "act=GetUserOrderList"
["F"]=>
string(7) "android"
["V"]=>
string(5) "1.8.0"
["user_id"]=>
string(3) "709"
["get_data"]=>
string(111) "act=GetUserOrderList&F=android&V=1.8.0
&key=1445961683170&sign=061cffe2b3ee&user_id=709&o_type=1&page=1&size=100"
}
*