1

作为下面的示例,有一个内容包含多个等号。PHP函数应该如何将所有等号解析为一个数组,其中键是等号之前的文本,值在它之后?

Lorem ipsum id="the id" dolor sit amet, consectetur name="the name" adipisicing elit, sed do type="the type" eiusmod tempor incididunt ut labore et dolore magna aliqua。

结果将是这样的:

Array ( 
    [id]   => the id
    [name] => the name
    [type] => the type
)
4

2 回答 2

2

我会使用preg_match_all来捕获该字符串中的所有这些实例。

preg_match_all('/([^\s]*?)="([^"]*?)"/',$text, $matches);

将找到您想要的变量并将它们设置在两个数组中:$matches[1]$matches[2]. 如果需要,可以使用forforeach循环将它们放入一个新数组中。

我在键盘上做了一个例子,如果你想看的话,在这里

于 2012-10-07T04:40:28.913 回答
2
$string; // This is the string you already have.

$matches = array(); // This will be the array of matched strings.

preg_match_all('/\s[^=]+="[^"]+"/', $string, $matches);

$returnArray = array();
foreach ($matches as $match) { // Check through each match.
    $results = explode('=', $match); // Separate the string into key and value by '=' as delimiter.
    $returnArray[$results[0]] = trim($results[1], '"'); // Load key and value into array.
}
print_r($returnArray);
于 2012-10-07T04:41:46.677 回答