Как я могу разделить данные из строки в PHP? - PullRequest
0 голосов
/ 17 июля 2011

У меня есть строка в PHP, подобная следующей

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

, и я хочу присвоить значение из этой строки следующим переменным

$id = 53;
$key = 23;

Как я могу сделать это в php,пожалуйста помогите?

Ответы [ 3 ]

3 голосов
/ 17 июля 2011

Эта функция будет работать для более общих вводов ключ / значение, а не только 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
2 голосов
/ 17 июля 2011

Для более общего решения:

$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'];
2 голосов
/ 17 июля 2011

Попробуйте это:

$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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...