PHP 数组包含 0/
Posted
技术标签:
【中文标题】PHP 数组包含 0/【英文标题】:PHP array containing 0/ 【发布时间】:2018-02-13 12:28:06 【问题描述】:嗨,我有一个包含类似模式的元素数组 $arr = 数组 ('0/' ,'0/12/3','1/2') 我需要有我尝试使用命令的“0/”元素数组
arr_with_zero_slash = preg_grep('@$[0-9]/$@',$arr)
但函数仅适用于 1/ 、 2/ 等女巫模式。这是因为 0/ 被视为特殊符号,但我不知道如何处理。有什么想法吗?
【问题讨论】:
"0/ 被视为特殊符号" --0/
没有什么特别之处
仅供参考,“命令”不是有效的 php 代码。另外,[0-9]
为您提供从 0 到 9 的所有数字,您只想要 0,对吗?
【参考方案1】:
我想这就是你的意思: 使用 foreach 循环遍历数组 $arr,并取消设置(删除)所有不以 '0/' 开头的元素...
$arr = array ('0/' ,'0/12/3','1/2');
foreach($arr as $key=>$value)
if(substr($value,0,2)<>"0/")
unset($arr[$key]);
与:
$arr = array ('0/' ,'0/12/3','1/2')
这将是结果:
array(2) [0]=> string(2) "0/" [1]=> string(6) "0/12/3"
【讨论】:
【参考方案2】:如果你想获取所有以0/
开头的元素,试试这个:
<?php
$arr = array ('0/' ,'0/12/3','1/2', '1/0/4');
$arr_with_zero_slash = preg_grep('@^0/@',$arr);
print_r($arr_with_zero_slash);
这将输出
Array (
[0] => 0/
[1] => 0/12/3
)
删除第一个$
,因为它是meta-character。
将[0-9]
更改为0
,因为您只需要0/
而不是1/
、2/
等。
删除了第二个$
,因为你还想要0/12/3
。
【讨论】:
这也将匹配像1/0/4
这样的字符串。
@simon 对,我的错,添加了^
以上是关于PHP 数组包含 0/的主要内容,如果未能解决你的问题,请参考以下文章
PHP preg_grep -> 搜索词包含特殊字符的搜索数组