質問: 0;$i < count($itemArray);$i++) { echo ''; echo 'アイテム名:'.$itemArray[$i].' '.$levelArray[$i].'個'; } } echo ''; print_r($skillArray); echo ''; print_r($levelArray); echo ''; print_r($itemArray); echo ''; print_r($numArray); ``` ↓結果(ここから) キャラ名:ナルト 技名:螺旋丸 レベル:LV50 技名:螺旋手裏剣 レベル:LV80 技名:螺旋丸 レベル:LV50 技名:螺旋手裏剣 レベル:LV80 技名:螺旋丸 レベル:LV50 技名:螺旋手裏剣 レベル:LV80 技名:螺旋丸 レベル:LV50 技名:螺旋手裏剣 レベル:LV80 技名:螺旋丸 レベル:LV50 技名:螺旋手裏剣 レベル:LV80 技名:螺旋丸 レベル:LV50 技名:螺旋手裏剣 レベル:LV80 技名:螺旋丸 レベル:LV50 技名:螺旋手裏剣 レベル:LV80 技名:螺旋丸 レベル:LV50 技名:螺旋手裏剣 レベル:LV80 技名:螺旋丸 レベル:LV50 技名:螺旋手裏剣 レベル:LV80 技名:螺旋丸 レベル:LV50 技名:螺旋手裏剣 レベル:LV80 アイテム名:ポーション 15個 アイテム名:ポーション 15個 アイテム名:ハイポーション 20個 アイテム名:ハイポーション 20個 アイテム名:エリクサー 18個 アイテム名:エリクサー 18個 アイテム名:フェニックスの尾 36個 アイテム名:フェニックスの尾 36個 アイテム名:ポーション 52個 アイテム名:ポーション 52個 アイテム名:ハイポーション 21個 アイテム名:ハイポーション 21個 アイテム名:エリクサー 14個 アイテム名:エリクサー 14個 アイテム名:フェニックスの尾 55個 アイテム名:フェニックスの尾 55個 アイテム名:ラストエリクサー 22個 アイテム名:ラストエリクサー 22個 アイテム名:薬草 21個 アイテム名:薬草 21個 Array ( [0] => 螺旋丸 [1] => 螺旋手裏剣 [2] => 螺旋丸 [3] => 螺旋手裏剣 [4] => 螺旋丸 [5] => 螺旋手裏剣 [6] => 螺旋丸 [7] => 螺旋手裏剣 [8] => 螺旋丸 [9] => 螺旋手裏剣 [10] => 螺旋丸 [11] => 螺旋手裏剣 [12] => 螺旋丸 [13] => 螺旋手裏剣 [14] => 螺旋丸 [15] => 螺旋手裏剣 [16] => 螺旋丸 [17] => 螺旋手裏剣 [18] => 螺旋丸 [19] => 螺旋手裏剣 ) Array ( [0] => LV50 [1] => LV80 [2] => LV50 [3] => LV80 [4] => LV50 [5] => LV80 [6] => LV50 [7] => LV80 [8] => LV50 [9] => LV80 [10] => LV50 [11] => LV80 [12] => LV50 [13] => LV80 [14] => LV50 [15] => LV80 [16] => LV50 [17] => LV80 [18] => LV50 [19] => LV80 ) Array ( [0] => ポーション [1] => ポーション [2] => ハイポーション [3] => ハイポーション [4] => エリクサー [5] => エリクサー [6] => フェニックスの尾 [7] => フェニックスの尾 [8] => ポーション [9] => ポーション [10] => ハイポーション [11] => ハイポーション [12] => エリクサー [13] => エリクサー [14] => フェニックスの尾 [15] => フェニックスの尾 [16] => ラストエリクサー [17] => ラストエリクサー [18] => 薬草 [19] => 薬草 ) Array ( [0] => 15 [1] => 15 [2] => 20 [3] => 20 [4] => 18 [5] => 18 [6] => 36 [7] => 36 [8] => 52 [9] => 52 [10] => 21 [11] => 21 [12] => 14 [13] => 14 [14] => 55 [15] => 55 [16] => 22 [17] => 22 [18] => 21 [19] => 21 ) ↑結果(ここまで) 本当はこう表示させたいのです。 キャラ名:ナルト 技名:螺旋丸 レベル:LV50 技名:螺旋手裏剣 レベル:LV80 アイテム名:ポーション 15個 アイテム名:ハイポーション 20個 アイテム名:エリクサー 18個 アイテム名:フェニックスの尾 36個 ![イメージ説明](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/04955efdd5294ab4b2140f352b2ee390.jpeg) user_id=2のしか持っていない薬草まで表示されてしまっているのでおかしいのです...
回答: クエリを横にずらっと並べて書くと非常にわかりづらいと思います。 LEFT JOIN をするのは結構ですが、何が欲しいのか目的がわかりづらいので、次のような感じで書いてみてはどうでしょうか。 テーブルに何があるのか読み取るのが大変だったので適当ですが...。 ``` SELECT name.id, name, skills, levels FROM name LEFT JOIN (select GROUP_CONCAT(skill) AS skills group by user_id) SK ON name.id=SK.user_id LEFT JOIN (select GROUP_CONCAT(level) AS levels group by user_id) LV ON name.id=LV.user_id ``` クエリ自体は未検証です。間違ってたらすみません。