【发布时间】:2014-08-20 08:29:20
【问题描述】:
我正在尝试找出是否有任何函数可以拆分字符串,例如:
keyword=flower|type=outdoors|colour=red
到数组:
array('keyword' => 'flower', 'type' => 'outdoors', 'colour' => 'red')
目前我构建了一个自定义函数,它使用explode 来首先使用分隔符| 分割元素,然后每个元素都使用赋值符号=,但是可能有一个本机函数可以做到这一点通过指定字符串分隔符开箱即用?
我写的函数是这样的:
public static function splitStringToArray(
$string = null,
$itemDivider = '|',
$keyValueDivider = '='
) {
if (empty($string)) {
return array();
}
$items = explode($itemDivider, $string);
if (empty($items)) {
return array();
}
$out = array();
foreach($items as $item) {
$itemArray = explode($keyValueDivider, $item);
if (
count($itemArray) > 1 &&
!empty($itemArray[1])
) {
$out[$itemArray[0]] = $itemArray[1];
}
}
return $out;
}
【问题讨论】:
-
没有。但是,您可以使用
parse_str函数(并将|'s 更改为&'s)在一个衬里中执行此操作:parse_str(str_replace('|', '&', $string), $array); -
太棒了 - 您可以将其发布为答案,以便我将其标记为已回答吗?