帮助优化php中的函数
我在php中创建了一个函数来转换字符串,如下所示:帮助优化php中的函数,php,multidimensional-array,Php,Multidimensional Array,我在php中创建了一个函数来转换字符串,如下所示: [20110911, 20110913, [20110915, 20110918], 20110920, 20110922, 20110924, [20110926, 20110927], 20110929] 要创建php数组,请执行以下操作: Array ( [0] => 20110911 [1] => 20110913 [2] => Array ( [0]
[20110911, 20110913, [20110915, 20110918], 20110920, 20110922, 20110924, [20110926, 20110927], 20110929]
要创建php数组,请执行以下操作:
Array
(
[0] => 20110911
[1] => 20110913
[2] => Array
(
[0] => 20110915
[1] => 20110918
)
[3] => 20110920
[4] => 20110922
[5] => 20110924
[6] => Array
(
[0] => 20110926
[1] => 20110927
)
[7] => 20110929
[8] => Array
(
[0] => 20111001
[1] => 20111002
)
[9] => 20111004
[10] => Array
(
[0] => 20111006
[1] => 20111007
)
)
功能是:
function dates2Array($d){
if($d!==''){
$d=substr($d, 1, strlen($d)-2);
$d=explode(', ', $d);
$dates=array();
if(!empty($d)){
$j=1;
foreach($d as $k=>$v){
if(substr($v, 0, 1)==='[') $dates[]=array(substr($v, 1, strlen($v)));
elseif(substr($v, strlen($v)-1, strlen($v))===']'){
$dates[$k-$j][1]=substr($v, 0, strlen($v)-1);
$j++;
}
else $dates[]=$v;
}
}
}
return $d!==''?$dates:'';
}
我对自己的功能不太满意。
我认为它可以更优化和压缩速度。。
可以吗?使用JSON(and)代替
结果:
Array
(
[0] => 20110911
[1] => 20110913
[2] => Array
(
[0] => 20110915
[1] => 20110918
)
[3] => 20110920
[4] => 20110922
[5] => 20110924
[6] => Array
(
[0] => 20110926
[1] => 20110927
)
[7] => 20110929
)
您可以在{…}中传递字符串,并将其传递给
json\u decode(str,true)
以获取数组
>> json_decode("[20110911, 20110913, [20110915, 20110918], 20110920, 20110922, 2
0110924, [20110926, 20110927], 20110929]")
array (
0 => 20110911,
1 => 20110913,
2 =>
array (
0 => 20110915,
1 => 20110918,
),
3 => 20110920,
4 => 20110922,
5 => 20110924,
6 =>
array (
0 => 20110926,
1 => 20110927,
),
7 => 20110929,
)
它会像上面提到的一样转换成相同的数组吗?我知道,但它什么也没做…:(@Vaib看一看我的演示。确保你有PECL json>=1.2的PHP。0@VaibhavGupta字体是的,试试看again@Vaibhav古普塔:这个链接起作用了,但你的系统中有些东西不起作用!@VaibhavGupta:你认为你可以在这里共享你的IP吗?这正是我13分钟前发布的答案