PHP在等号之前获取文本作为数组键并在作为数组值之后

时间:2012-10-07 04:24:38

标签: php arrays

下面举例说明内容包含多个等号。 PHP函数应该如何能够解析所有等于一个带有键的数组是等号之前的文本,值是否在它之后?

  

Lorem ipsum id =“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
)

2 个答案:

答案 0 :(得分:2)

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

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

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

我在键盘中做了一个例子,如果你想看一下,here

答案 1 :(得分: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);