Substr от конца строки 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'); 

Может ли какой-нибудь субстрат, но с чего начать?

Вы можете использовать array_filter() для фильтрации массива, возвращая только элементы, которые соответствуют данному условию:

 $picturethumbs = array_filter($picture, function($v) { return stristr($v, '_thumb'); }); 

_thumb все элементы массива, содержащие строку _thumb . Это может быть полезно, если вы не знаете расширения файла, или если _thumb появляется где-то, кроме конца строки (например, my_thumb.gif все равно будет соответствовать)

 $picturethumbs = array_filter($picture, function($v) { return substr($v, -10) === '_thumb.jpg'; }); 

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