从包含多个键的字符串中提取键

时间:2012-05-30 07:18:26

标签: php

我正在寻找一种方法来轻松提取包含多个键的字符串。字符串是卷曲标题响应的结果

echo $response['body'];
// status=2 reason=Invalid tariff/currency

期望的结果:

$status == '2';
$reason == 'Invalid tariff/currency';

array (
    [status] => '2'
    [reason] => 'Invalid tariff/currency'
)

3 个答案:

答案 0 :(得分:0)

也许是这样的事情?

$parts = explode(" ", $response['body'], 2);
foreach($parts as $part)
{
   $tmp = explode("=", $part);
   $data[$tmp[0]] = $tmp[1];
}

var_dump($data);

答案 1 :(得分:0)

根据上面的字符串,您可以使用PHP Variable variables创建局部变量$status$reason。看看这段代码:

$str = 'status=2 reason=Invalid tariff/currency';

foreach (explode(' ', $str, 2) as $item) {
    list($key, $val) = explode('=', $item);
    $$key = $val;
}

// Now you have these
echo $status;  // 2
echo $reason;  // Invalid tariff/currency

答案 2 :(得分:0)

试试这个,它只适用于您的示例,如果您有可能从不同格式中提取数据,我建议最好使用preg_match。

$response['body'] = "status=2 reason=Invalid tariff/currency";
$responseArray = explode(" ", $response['body'], 2);
foreach($responseArray as $key => $value){
    $requiredOutput = explode("=",$value);
    print_r($requiredOutput);
}