我在PHP中有一个字符串,如下所示
$data = "ID=53KEY=23";
我希望将此字符串中的值赋给以下变量
$id = 53;
$key = 23;
我如何在PHP中执行此操作,请帮忙?
答案 0 :(得分:3)
此功能适用于更通用的键/值输入,而不仅仅是ID / KEY
$input = "ID=53KEY=23";
$res = preg_split("/([[:upper:]]+)=([[:digit:]]+)/", $input, null, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
for ($i = 0 ; $i < count($res) ; $i += 2)
{
$res[$i] = strtolower($res[$i]);
$$res[$i] = $res[$i+1];
}
//$id = 53
//$key = 23
答案 1 :(得分:2)
试试这个:
$data = "ID=53KEY=23";
preg_match("/id=(?<id>\d+)&?key=(?<key>\d+)/i",$data,$array);
$id = $array["id"]; // 53
$key = $array["key"]; //23
print("id = $id, key = $key\n");
答案 2 :(得分:2)
对于更通用的解决方案:
$data = "ID=53KEY=23AGE=318";
$array = array();
if(preg_match_all("/([A-Z]+)=(\d+)/", $data, $matches)) {
$array = array_change_key_case(array_combine($matches[1], $matches[2]));
}
echo "ID: " . $array['id'] . ", KEY: " . $array['key'] . ", AGE: " . $array['age'];