php操纵foreach循环中的字符串

时间:2016-11-01 10:13:47

标签: php string foreach

我想循环使用.png文件名的数组,获取图像方向,前置' a'对于风景' b'对于肖像,所以我将它们排序为图库输出。

如何在循环遍历数组$ images?

的同时编辑字符串

谢谢。

foreach ($images as $img) {
    list($width, $height) = getimagesize("path/to/img" . $img);
    if ($width > $height) {
        // how to prepend 'a' to $img?
    }
    else {
       // how to prepend 'b' to $img?
    }
}

3 个答案:

答案 0 :(得分:0)

foreach ($images as $img) {
    list($width, $height) = getimagesize("path/to/img" . $img);
    if ($width > $height) {
        $actual_string .= 'a';
    }
    else {
        $actual_string .= 'b';
    }
}

希望它有所帮助.. :)

答案 1 :(得分:0)

这就是你可能正在寻找的东西

foreach ($images as $key => $img) {
  list($width, $height) = getimagesize("path/to/img" . $img);
  if ($width > $height) {
    $images[$key] = 'a'.$images[$key];
  }
  else {
    $images[$key] = 'b'.$images[$key];
  }
}

答案 2 :(得分:0)

您必须通过引用传递值或使用类似数组映射的内容。

通过引用传递只是在迭代值之前添加&

foreach ($images as &$img) {

    list($width, $height) = getimagesize("path/to/img" . $img);

    $img = (($width > $height) ? 'a' : 'b') . $img;
}

使用array_map

$images = array_map(function ($img) {

    list($width, $height) = getimagesize("path/to/img" . $img);

    $img = (($width > $height) ? 'a' : 'b') . $img;

    return $img;

}, $images);

希望这有帮助!