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

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

ただいまの
回答率

90.85%

  • PHP

    18209questions

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

  • 配列

    463questions

    配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

  • ソート

    57questions

    複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。

PHP:キーで多次元配列をソートする方法

解決済

回答 1

投稿

  • 評価
  • クリップ 1
  • VIEW 1,624

rupin

score 77

PHPを使って、スケジュールの情報を持った多次元配列を、
複数のキーでソートさせる方法を知りたいです。

具体的には、[スケジュールの状態],[予定日付]、[予定の種類]でソートさせようと思っています。

uasortを検討中ですが、必要な関数の書き方がわかりません。
どなたか教えてください。

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

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

回答 1

checkベストアンサー

+3

array_multisortを使ってください。

使い方の例:
$array = array( 
    array('ID' => 1, 'name' => '名前1', 'event_flg' => '0'),
    array('ID' => 2, 'name' => '名前2', 'event_flg' => '0'),
    array('ID' => 3, 'name' => '適当', 'event_flg' => '1'), 
    array('ID' => 4, 'name' => '適当2', 'event_flg' => '1')
); 
$sort = array(); 
foreach($array as $key=>$value) {
   $sort['name'][$key] = $value['name'];
   $sort['flg'][$key] = $value['event_flg'];
} 
array_multisort($sort['flg'], SORT_DESC, $sort['name'], SORT_ASC,$array);
var_dump($array); 

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

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

  • ただいまの回答率 90.85%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

関連した質問

  • 解決済

    PHPのusort()の引数にクラスのメソッドを指定

    今コードを編集して、すべてのコードをクラスに格納しています。 usortのコールバック関数をprivateメソッドで書いているのですが、それをusortのコールバックに登録するや

  • 受付中

    データをicalファイルとしてPHPで生成するには?

    PHPを使って、データベースからイベントのデータを取得してicalファイルに出力したいのですが、やり方がわからず困っています。 PHPのファイルをどうやって*.icalファイルで

  • 解決済

    PHP 連想配列をキーでソートしたい

    PHPで連想配列を作り、キーをソートしたいと考えているのですが良い関数が作れません。 連想配列には、 $data = array(“z”=>”last”,”b”=>second”,

  • 受付中

    simple_html_dom 複数サイト

    たとえば、各地のイベントスケジュールをまとめるサイトを作るとして、 http://a.comとhttp://b.comから日付とイベントタイトルを取得して、サイトでは両方のサイトを

  • 解決済

    多次元配列を時間でソート

    こんにちは。 phpを使って多次元配列を時間でソートしたいのですが、 どなたかサンプルとなるコードを教えていただけないでしょうか。 至急でよろしくお願いいたします。

  • 受付中

    php カタカナ五十音順ソート

    phpでカタカナの五十音順ソートのやり方がわかりません ご存知の方がいらっしゃいましたらご鞭撻いただけると幸いです。 ...->orderBy('kana')->get(.

  • 受付中

    ファイル(日付順)のソートについて

    指定ディレクトリにアップロードしたファイルを一覧で表示させているのですが 更新順で表示させたいと思い悩んでます。 ファイルの格納場所ですが 201701ディレクトリのhoge1

  • 解決済

    PHP:年月の文字列(2016年8月など)を並べ替えるために数値化したい

    文字列のまま並べ替えをすると以下のように並んでしまいました。 wordpressのget_postsで並び替えたいので、元のデータを成形しなおさないといけないかと思っています。

同じタグがついた質問を見る

  • PHP

    18209questions

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

  • 配列

    463questions

    配列は、各データの要素(値または変数)が連続的に並べられたデータ構造です。各配列は添え字(INDEX)で識別されています。

  • ソート

    57questions

    複数のデータを、順序性に従って並べ替えること。 データ処理を行う際に頻繁に用いられ、多くのアルゴリズムが存在します。速度、容量、複雑さなどに違いがあり、高速性に特化したものにクイックソートがあります。