我如何从PHP中的字符串中分割数据?

时间:2011-07-17 03:44:10

标签: php string

我在PHP中有一个字符串,如下所示

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

我希望将此字符串中的值赋给以下变量

$id = 53;
$key = 23;

我如何在PHP中执行此操作,请帮忙?

3 个答案:

答案 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'];
相关问题