2次元配列のソート、添字の並べ替えです
タイトルの通り、あるフィールドをソートしたところ、添字も追随して0から並び替えたいのですが〜。 。 どうすればいいですか?
-----解決策---------
$fruits = array("d"=>"レモン", "a"=>"オレンジ", "b"=>"バナナ", "c"=>"リンゴ"); ksort($fruits); print "<pre class="brush:php;toolbar:false">"; var_dump($fruits); <br><font color="#e78608">------解決策------------------</font><br>
$ar = 配列( 配列("10", 11, 100, 100, "a"), 配列(1, 2, "2", 3, 1) ); array_multisort($ar[0], SORT_ASC, SORT_STRING, $ar[1]、SORT_NUMERIC、SORT_DESC); //SORT_ASC、SORT_DESC、SORT_REGULAR、SORT_NUMERIC、SORT_STRING print "<pre class="brush:php;toolbar:false">"; print_r($ar); <br><font color="#e78608">------解決策------------------</font><br> これが必要だと思います - <br>コードの最後の部分の最後のパラメータをよく見てください<br><br><br>例 #4 データベースの結果を並べ替えます<br><br><br> この例では、データ配列 の各セルはテーブル内の行を表します。これは、データベースに記録される典型的なデータのコレクションです。 <br><br><br>この例のデータは次のとおりです: <br><br><br>ボリューム | エディション<br>------+--------<br> 67 | 2<br> 86 | 6<br> 86 | 6<br> 67 | 7<br><br><br> data middle という名前の配列。これは通常、mysql_fetch_assoc() などのループを通じてデータベースから取得されます。 <br><br><br><?php<br />$data[] = array('volume' => 67, 'edition' => 2);<br />$data[] = array( 'ボリューム' => 86, 'エディション' => 1);<br />$data[] = array('ボリューム' => 85, 'エディション' => 6);<br />$data[ ] = array('volume' => 98, 'edition' => 2);<br />$data[] = array('volume' => 86, 'edition' => 6);<br />$data[] = array('volume' => 67, 'edition' => 7);<br />?><br /><br /><br />この例では、ボリュームは次のようにソートされます。降順でエディションを昇順に並べます。 <br /><br /><br />これで行を含む配列ができましたが、array_multisort() には列を含む配列が必要なので、次のコードを使用して列を取得し、並べ替えます。 <br /><br /><br /><?php<br />// 列のリストを取得します<br />foreach ($data as $key => $row) {<br> $volume[$key] = $ row['volume'];<br> $edition[$key] = $row['edition'];<br>}<br><br>// データをボリュームに従って降順に並べ替えます。エディションに応じた昇順<br>// $data を最後のパラメータとして使用し、共通キーで並べ替えます <br>array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);<br>?> <br> <br><br>データ コレクションがソートされ、結果は次のようになります: <br><br><br>ボリューム | エディション<br>------+-------- <br> 98 | 2<br> 86 | 6<br> 67 | 2<br> <br><br>------解決策------------------<br><br> $t がソートの結果であり、添え字が昇順ではないと仮定すると <br>、$t = array_values($t);<br> は昇順の添え字 <br><br> に変換できます。