我有这种数组,我会很容易理解
$picture = ( 'artist2-1_thumb.jpg',
'artist2-2.jpg' ,
'artist2-3_thumb.jpg',
'artist2-4.jpg',
'artist2-5_thumb.jpg');
现在我想使用substr来获取只有拇指的新数组,以获得像这样的新数组
$picturethumbs = ( 'artist2-1_thumb.jpg',
'artist2-3_thumb.jpg',
'artist2-5_thumb.jpg');
可以某些子目录,但从哪里开始?
答案 0 :(得分:8)
您可以使用array_filter()
过滤数组,只返回与给定条件匹配的项目:
$picturethumbs = array_filter($picture, function($v) {
return strpos($v, '_thumb') !== false;
});
将返回包含字符串_thumb
的所有数组项。如果您不知道文件的扩展名,或者_thumb
出现在字符串末尾之外的其他位置(例如my_thumb.gif
仍然匹配),这可能很有用。
$picturethumbs = array_filter($picture, function($v) {
return substr($v, -10) === '_thumb.jpg';
});
将返回最后10个字符与_thumb.jpg
匹配的所有数组项。
两者(给出你的示例数组)输出:
array
0 => string 'artist2-1_thumb.jpg' (length=19)
2 => string 'artist2-3_thumb.jpg' (length=19)
4 => string 'artist2-5_thumb.jpg' (length=19)
答案 1 :(得分:1)
你在这里:
$picturethumbs = array();
foreach ($picture as $val) {
if (substr($val, -10) == '_thumb.jpg') {
$picturethumbs[] = $val;
}
}