是否有办法从php中获得array index
的一小部分数据?
例如,我有一个这样的数据数组:
从上面数组的描述索引阵列(
[title] => My title
[description] =>Lorem Ipsum只是印刷排版行业的虚拟文本。自16世纪以来,Lorem Ipsum一直是行业标准的虚拟文本,当时一位不知名的印刷商将一排字体
代码:不需要促销码开始时间:2014-07-25 00:00:00过期时间:0000-00-00 00:00:00[link] => http://google.com)
,我只需要包含
的部分代码:No Promo Code Required开始时间:2014-07-25 00:00:00过期时间:0000-00-00 00:00:00
无论这部分出现在文本数据中的哪个位置
$myArray = array(
"title" => "My Title",
"description" => "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type
Code: No Promo Code Required Begin: 2014-07-25 00:00:00 Expire: 0000-00-00 00:00:00",
"link" => "http://www.gopjn.com/t/3-79115-101746-99698"
);
preg_match("/(Code.*Expire:'s'd{4}-'d{2}-'d{2}'s'd{2}:'d{2}:'d{2})/", $myArray["description"], $matches);
echo $matches[1];
演示如果您想要匹配的字符串可能有多个实例,并且希望获得所有实例,则使用preg_match_all()代替。
这可能不是最直接也不是最好的方法(regex可能是一个更好的主意)。但是有一种方法:
$foo = explode('Code:', $myarray['description'], 1);
echo array_pop($foo);
或者
$p = stripos($myarray['description'], 'Code:');
$foo = substr($myarray['description'], $p);
echo $foo;
可以使用mb_substr()
echo mb_substr($myArray['description'], 0/*表示缩进*/,30/表示要显示的元素数量/, 'utf-8'/编码类型/);