【发布时间】:2011-09-08 22:32:47
【问题描述】:
给定:
$val = "font-size:12px;color:#ff0000;font-family:Arial";
下面的代码会将字符串分解两次,生成一个数组数组:
$val = explode(';',$val);
foreach($val as &$v)
$v = explode(':',$v);
var_dump($val);
输出是:
array(3) {
[0]=>
array(2) {
[0]=>
string(9) "font-size"
[1]=>
string(4) "12px"
}
[1]=>
array(2) {
[0]=>
string(4) "fill"
[1]=>
string(7) "#ff0000"
}
[2]=>
&array(2) {
[0]=>
string(11) "font-family"
[1]=>
string(5) "Arial"
}
}
有没有更有效/更清洁的方法来达到同样的效果?
我更喜欢没有 lambda 函数的东西,因为 PHP 5.2 不支持它们。但这无论如何都是一个纯粹的智力问题,所以,这只是一个偏好。
【问题讨论】:
-
看来
array_map()可能会成为答案。 -
@Jared:我也在想同样的事情。但我更喜欢没有 lambda 函数
-
那你不应该把它包括在你的问题中吗?
-
你目前的方法是什么让它感觉效率低下/不干净?
-
@Jared:是的,我应该有 :-) 我已经编辑了我的问题。
标签: php arrays string performance explode