質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

615閲覧

[PHP]多次元連想配列で重複してる値を変換して並び替えをするにはどうしたらよいか

masahito2021

総合スコア2

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/10/18 14:09

多次元連想配列で重複してる値を変換して並び替えをするにはどうしたらよいでしょうか?

■変換前

PHP

1$data = [ 2 [ 3 'id' => 100, 4 'val'=> 1 5 ], 6 [ 7 'id' => 101, 8 'val'=> 1 9 ], 10 [ 11 'id' => 102, 12 'val'=> 1 13 ], 14 [ 15 'id' => 103, 16 'val'=> 1 17 ], 18 [ 19 'id' => 104, 20 'val'=> 2 21 ], 22 [ 23 'id' => 105, 24 'val'=> 2 25 ], 26 [ 27 'id' => 106, 28 'val'=> 3 29 ], 30 [ 31 'id' => 107, 32 'val'=> 4 33 ], 34 [ 35 'id' => 108, 36 'val'=> 5 37 ], 38 [ 39 'id' => 109, 40 'val'=> 6 41 ], 42 [ 43 'id' => 110, 44 'val'=> 7 45 ], 46 [ 47 'id' => 111, 48 'val'=> 7 49 ], 50 [ 51 'id' => 112, 52 'val'=> 7 53 ], 54 [ 55 'id' => 113, 56 'val'=> 8 57 ], 58 [ 59 'id' => 114, 60 'val'=> 8 61 ], 62 [ 63 'id' => 115, 64 'val'=> 9 65 ], 66 [ 67 'id' => 116, 68 'val'=> 9 69 ], 70 [ 71 'id' => 117, 72 'val'=> 10 73 ], 74 [ 75 'id' => 118, 76 'val'=> 11 77 ], 78 [ 79 'id' => 119, 80 'val'=> 11 81 ], 82 [ 83 'id' => 120, 84 'val'=> 12 85 ], 86 [ 87 'id' => 121, 88 'val'=> 12 89 ], 90 [ 91 'id' => 122, 92 'val'=> 12 93 ], 94 [ 95 'id' => 123, 96 'val'=> 13 97 ], 98 [ 99 'id' => 124, 100 'val'=> 13 101 ], 102 [ 103 'id' => 125, 104 'val'=> 13 105 ], 106]

■変換後

PHP

1$data = [ 2 [ 3 'id' => 100, 4 'val'=> 1 5 ], 6 [ 7 'id' => 101, 8 'val'=> 14 9 ], 10 [ 11 'id' => 102, 12 'val'=> 27 13 ], 14 [ 15 'id' => 103, 16 'val'=> 40 17 ], 18 [ 19 'id' => 104, 20 'val'=> 2 21 ], 22 [ 23 'id' => 105, 24 'val'=> 15 25 ], 26 [ 27 'id' => 106, 28 'val'=> 3 29 ], 30 [ 31 'id' => 107, 32 'val'=> 4 33 ], 34 [ 35 'id' => 108, 36 'val'=> 5 37 ], 38 [ 39 'id' => 109, 40 'val'=> 6 41 ], 42 [ 43 'id' => 110, 44 'val'=> 7 45 ], 46 [ 47 'id' => 111, 48 'val'=> 20 49 ], 50 [ 51 'id' => 112, 52 'val'=> 33 53 ], 54 [ 55 'id' => 113, 56 'val'=> 8 57 ], 58 [ 59 'id' => 114, 60 'val'=> 21 61 ], 62 [ 63 'id' => 115, 64 'val'=> 9 65 ], 66 [ 67 'id' => 116, 68 'val'=> 22 69 ], 70 [ 71 'id' => 117, 72 'val'=> 10 73 ], 74 [ 75 'id' => 118, 76 'val'=> 11 77 ], 78 [ 79 'id' => 119, 80 'val'=> 24 81 ], 82 [ 83 'id' => 120, 84 'val'=> 12 85 ], 86 [ 87 'id' => 121, 88 'val'=> 25 89 ], 90 [ 91 'id' => 122, 92 'val'=> 38 93 ], 94 [ 95 'id' => 123, 96 'val'=> 13 97 ], 98 [ 99 'id' => 124, 100 'val'=> 26 101 ], 102 [ 103 'id' => 125, 104 'val'=> 39 105 ], 106] 107 108valの昇順で並び替えを行いたい 109 110$data = [ 111 [ 112 'id' => 100, 113 'val'=> 1 114 ], 115 [ 116 'id' => 104, 117 'val'=> 2 118 ], 119 [ 120 'id' => 106, 121 'val'=> 3 122 ], 123 [ 124 'id' => 107, 125 'val'=> 4 126 ], 127 [ 128 'id' => 108, 129 'val'=> 5 130 ], 131 [ 132 'id' => 109, 133 'val'=> 6 134 ], 135 [ 136 'id' => 110, 137 'val'=> 7 138 ], 139 [ 140 'id' => 113, 141 'val'=> 8 142 ], 143 [ 144 'id' => 115, 145 'val'=> 9 146 ], 147 [ 148 'id' => 117, 149 'val'=> 10 150 ], 151 [ 152 'id' => 118, 153 'val'=> 11 154 ], 155 [ 156 'id' => 120, 157 'val'=> 12 158 ], 159 [ 160 'id' => 123, 161 'val'=> 13 162 ], 163 [ 164 'id' => 101, 165 'val'=> 14 166 ], 167 [ 168 'id' => 105, 169 'val'=> 15 170 ], 171 [ 172 'id' => 111, 173 'val'=> 20 174 ], 175 [ 176 'id' => 114, 177 'val'=> 21 178 ], 179 [ 180 'id' => 116, 181 'val'=> 22 182 ], 183 [ 184 'id' => 119, 185 'val'=> 24 186 ], 187 188 [ 189 'id' => 121, 190 'val'=> 25 191 ], 192 [ 193 'id' => 124, 194 'val'=> 26 195 ], 196 [ 197 'id' => 102, 198 'val'=> 27 199 ], 200 [ 201 'id' => 112, 202 'val'=> 33 203 ], 204 [ 205 'id' => 122, 206 'val'=> 38 207 ], 208 [ 209 'id' => 125, 210 'val'=> 39 211 ], 212 [ 213 'id' => 103, 214 'val'=> 40 215 ], 216 217] 218 219

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2021/10/19 01:16

最初のデータからvalを変更するロジックが書かれていません
masahito2021

2021/10/19 03:39

valを変更するロジックが知りたいです
guest

回答1

0

ソートの部分だけでいいならusortがよいでしょう

PHP

1usort($data,function($x,$y){ 2return $x["val"]-$y["val"]; 3}); 4print_r($data);

投稿2021/10/19 01:23

yambejp

総合スコア114843

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問