teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

5

追記

2018/11/13 04:44

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -6,4 +6,10 @@
6
6
 
7
7
  複数の画像がある場合、最初の画像を取得してからも次のループが回るので、条件に一致する画像が複数あると 何回も実行されて、`$first_img` が、上書きされますね。そのため、条件に一致した最後の画像が代入されているのだと思われます。
8
8
 
9
- 画像取得の条件に $first_img が空であるという条件を加えるか。または、$first_img に代入した後に `break` でループを抜けるようにする必要がありそうです。
9
+ 画像取得の条件に $first_img が空であるという条件を加えるか。または、$first_img に代入した後に `break` でループを抜けるようにする必要がありそうです。
10
+
11
+ ----
12
+
13
+ > $first_img = $m[1];
14
+
15
+ の次の行に `break; ` といれて、 foreach ループを抜けるようにしたら 希望の動作にならないでしょうか。

4

修正

2018/11/13 04:44

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -6,4 +6,4 @@
6
6
 
7
7
  複数の画像がある場合、最初の画像を取得してからも次のループが回るので、条件に一致する画像が複数あると 何回も実行されて、`$first_img` が、上書きされますね。そのため、条件に一致した最後の画像が代入されているのだと思われます。
8
8
 
9
- 画像取得の条件に $first_img が空であるという条件を加えるか。$first_img に代入した後に `break` でループを抜けるようにする必要がありそうです。
9
+ 画像取得の条件に $first_img が空であるという条件を加えるか。または、$first_img に代入した後に `break` でループを抜けるようにする必要がありそうです。

3

修正

2018/11/13 04:42

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -6,4 +6,4 @@
6
6
 
7
7
  複数の画像がある場合、最初の画像を取得してからも次のループが回るので、条件に一致する画像が複数あると 何回も実行されて、`$first_img` が、上書きされますね。そのため、条件に一致した最後の画像が代入されているのだと思われます。
8
8
 
9
- 画像取得の条件に $first_img が空であるという条件を加えるか。$first_img に代入した後にループを抜けるようにする必要がありそうです。
9
+ 画像取得の条件に $first_img が空であるという条件を加えるか。$first_img に代入した後に `break` でループを抜けるようにする必要がありそうです。

2

修正

2018/11/13 04:42

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -4,6 +4,6 @@
4
4
 
5
5
  でループを回していますので、$matches[0] の数だけループします。
6
6
 
7
- 複数の画像がある場合、最初の画像を取得してからも次のループが回るので、条件に一致する画像が複数あると 何回も実行されて、`$first_img` が、上書きされますね。
7
+ 複数の画像がある場合、最初の画像を取得してからも次のループが回るので、条件に一致する画像が複数あると 何回も実行されて、`$first_img` が、上書きされますね。そのため、条件に一致した最後の画像が代入されているのだと思われます。
8
8
 
9
9
  画像取得の条件に $first_img が空であるという条件を加えるか。$first_img に代入した後にループを抜けるようにする必要がありそうです。

1

語句の修正

2018/11/13 04:40

投稿

CHERRY
CHERRY

スコア25234

answer CHANGED
@@ -1,3 +1,5 @@
1
+ インデントがずれていて、見にくいので悩みましたが...
2
+
1
3
  > foreach( $matches[0] as $img ){
2
4
 
3
5
  でループを回していますので、$matches[0] の数だけループします。