我的文字:
URL: http://example.com
Type: department
Empty value:
Contact Name: John Doe
...
我想得到一个这样的数组:
array(
'url' => 'http://example.com',
'type' => 'department',
'empty-value' => '',
'contact-mame' => 'John Doe'
)
我正在做类似
的事情preg_match_all( '/(url|type): (.*)/i', $string, $match );
但是$ match并没有按照我需要的顺序获得值,而且我也不知道如何捕获键。
此时转换为小写键和破折号并不重要。
你能建议任何正则表达式吗?
非常感谢。
答案 0 :(得分:2)
您可以使用preg_match_all
和array_combine
:
$s = <<< EOF
URL: http://example.com
Type: department
Empty value:
Contact Name: John Doe
EOF;
preg_match_all('~^([^:]+):\h*(.*)$~m', $s, $matches);
$output = array_combine ( $matches[1], $matches[2] );
print_r( $output );
<强>输出:强>
Array
(
[URL] => http://example.com
[Type] => department
[Empty value] =>
[Contact Name] => John Doe
)