我如何从php的字符串分割数据


How can i split data from string in php?

PHP中有如下字符串

$data = "ID=53KEY=23";

,我想把这个字符串的值赋给以下变量

$id = 53;
$key = 23;

我如何在php中做到这一点,请帮助?

此函数将适用于更通用的键/值输入,而不仅仅是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

对于更通用的解决方案:

$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'];

试试这个:

$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");