按特殊字符分割并删除php和javascript数组中的空元素
我有一个由数字合并的合并字符串,每个数字元素的开头和结尾都有按特殊字符分割并删除php和javascript数组中的空元素,php,Php,我有一个由数字合并的合并字符串,每个数字元素的开头和结尾都有&字符 实际字符串&1&&3&&5& 如果将6添加到此字符串,则最后一个字符串将是&1&&3&&5&&6& 问题是当我想在这个数组字符串中获取数字时,数组中有太多的空元素,我也不需要它们 当我拆分explode(',,actualstr)时,数组是[“1”,“3”,“3”,“5”,“6”]但是我需要这个[“1”,“3”,“5”,“6”] 我会这样做很多次,所以需要最有效的方法 在js中也有类似的情况,如果需要知道特殊的方法,如果没有,则
&
字符
实际字符串&1&&3&&5&
如果将6添加到此字符串,则最后一个字符串将是
&1&&3&&5&&6&
问题是当我想在这个数组字符串中获取数字时,数组中有太多的空元素,我也不需要它们
当我拆分explode(',,actualstr)
时,数组是[“1”,“3”,“3”,“5”,“6”]
但是我需要这个[“1”,“3”,“5”,“6”]
我会这样做很多次,所以需要最有效的方法
在js中也有类似的情况,如果需要知道特殊的方法,如果没有,则可以手动检查。删除前导和尾随
&
,然后通过双击&
分解
$array = explode('&&',trim($str,'&'));
print_r($array);
Array
(
[0] => 1
[1] => 3
[2] => 5
[3] => 6
)
一个快速修复方法是使用正则表达式,但前提是您100%了解您正在使用的数据
preg_match_all("/[0-9]/", "&1&&3&&5&&6&", $numbers);
var_dump($numbers);
array(1) {
[0]=>
array(4) {
[0]=>
string(1) "1"
[1]=>
string(1) "3"
[2]=>
string(1) "5"
[3]=>
string(1) "6"
}
}
另一种方法是使用数组过滤器,如果“&”之间的数据不适合通过正则表达式进行过滤
array_filter(explode("&", "&1&&3&&5&&6&"))
我不知道如何提取这个字符串的数字,但如果您这样做,您可以得到一个数字数组:
preg_match_all('/&([0-9])&/','&1&&3&&5&',$matches);
var_dump($matches);
在JavaScript中,您可以执行类似于@AlexAndrei在PHP中所做的操作:
var str='&1&&3&&5&';
var result=str.substr(0,str.length-1).substr(1).split('&&');
控制台日志(结果)代码>可以使用trim()函数删除空间字符或从字符串中删除空间字符
$str = "&1&&3&&5&&6&";
$str_clear = trim($str, '&');
$array = explode('&&',$str_clear);
print_r($array);
我想这就是你想要做的
$str = "&1&&3&&5&&6&";
$numArray = preg_split('/&/', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($numArray);