从字符串 php 末尾的子str


Substr from end of string php?

我有这种数组,我会让它变得非常简单易懂

$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;
  }
}