我想循环使用.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?
}
}
答案 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);
希望这有帮助!