PHP获取第一个以“”结尾的数组值;.jpg”;


PHP Get first array value that ends with ".jpg"

我有一些数组,它们的格式可能都是这样的:

Array (
    [0] => .
    [1] => ..
    [2] => 151108-some_image-006.jpg
    [3] => high
    [4] => low
)

我知道它们有5个值,但我不能确定每个值放在哪里。

我正试图只从这个阵列中获取图像

$pos = array_search('*.jpg', $main_photo_directory);
echo $main_photo_directory[$pos];

但众所周知,它正在寻找一个它找不到的字面*.jpg。我不太擅长regex,也不知道如何格式化合适的字符串。

从这个阵列中获得第一个图像(假设可能有多个)的最佳方法是什么?

添加

我要求的原因之一是找到一种简单的方法来搜索数组。我不知道正则表达式,但我想用它。我写了一个问题,寻找一个正则表达式,在一个没有搜索结果的字符串末尾找到".jpg"。

这应该有效:

echo current(preg_grep('/'.jpg$/', $array));

您可以在数组上循环,直到找到以jpg:结尾的字符串

function endsWith($haystack, $needle) {
    return $needle === "" || (($temp = strlen($haystack) - strlen($needle)) >= 0 && strpos($haystack, $needle, $temp) !== FALSE);
}
$array = [];
$result = false;
foreach($array as $img) {
  if(endsWith($img, '.jpg')) {
    $result = $img;
    break;
  }
}
echo $result;