从字符串结束的php的Substr?

从字符串结束的php的Substr?,php,arrays,substr,Php,Arrays,Substr,我有这种数组,我会让它很容易理解 $picture = ( 'artist2-1_thumb.jpg', 'artist2-2.jpg' , 'artist2-3_thumb.jpg', 'artist2-4.jpg', 'artist2-5_thumb.jpg'); 现在我想使用substr来获得只有拇指的新数组,这样就有了新数组 $picturethumbs = ( 'artist2-1

我有这种数组,我会让它很容易理解

$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');
是否可以删除某些子项,但从何处开始?

您可以使用它来筛选数组,只返回与给定条件匹配的项:

$picturethumbs = array_filter($picture, function($v) {
  return strpos($v, '_thumb') !== false; 
});
将返回包含字符串
\u thumb
的所有数组项。如果您不知道文件的扩展名,或者
\u thumb
出现在字符串末尾以外的其他位置(例如
my_thumb.gif
仍将匹配),这可能会很有用

将返回最后10个字符匹配的所有数组项
\u thumb.jpg

两个(给定示例数组)输出:

给你:

$picturethumbs = array();

foreach ($picture as $val) {
  if (substr($val, -10) == '_thumb.jpg') {
    $picturethumbs[] = $val;
  }
}

@Legionar我已经对它进行了更新,感谢你指出(无论如何,它会这样工作,最好是明确的),但是如果字符串开头的“_thumb”是f.e.”?标题中的“Substr from end of string”,但您的答案也会选择它,如果它不仅在字符串的末尾…@Legionar,那么它会找到它。我假设OP想要得到一个包含
\u thumb
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;
  }
}