本文介绍了引爆两个项目列表中的数组作为重点=>价值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我想爆炸多行字符串像这样
I'd like to explode a multi-line-string like this
color:red
material:metal
像这样的数组
$array['color']=red
$array['material']=metal
任何想法?
推荐答案
使用,你可以使用正规的,但它很简单没有足够的开销。
Use explode(), you can use a regexp for it, but it's simple enough without the overhead.
$data = array();
foreach (explode("\n", $dataString) as $cLine) {
list ($cKey, $cValue) = explode(':', $cLine, 2);
$data[$cKey] = $cValue;
}
由于在评论中提到的,如果数据是从一个Windows / DOS环境未来很可能有CRLF换行符,添加的foreach之前以下行()
将解决
$dataString = str_replace("\r", "", $dataString); // remove possible \r characters
使用正则表达式另一种可以使用和:
The alternative with regexp can be quite pleasant using preg_match_all() and array_combine():
$matches = array();
preg_match_all('/^(.+?):(.+)$/m', $dataString, $matches);
$data = array_combine($matches[1], $matches[2]);
这篇关于引爆两个项目列表中的数组作为重点=>价值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!