我有这种数组,我会让它变得非常简单易懂
$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');
可以一些substr,但从哪里开始?
您可以使用
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)
这是一个演示
你在这里:
$picturethumbs = array();
foreach ($picture as $val) {
if (substr($val, -10) == '_thumb.jpg') {
$picturethumbs[] = $val;
}
}