• ベストアンサー

json の値から日付を返したい PHP

以下のような json がありPHP内の id にいろいろな整数が入るときに 1から49までは 2017/7/18、50から99までは 2017/7/19 100以上は 2017/7/20 のように日付を返すにはどのような処理をすればいいですか。 [ { "id": 1, "date": "2017/7/18" }, { "id": 50, "date": "2017/7/19" }, { "id": 100, "date": "2017/7/20" } ]

  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

こんな感じでしょうか? <?php $json = '[ { "id": 1, "date": "2017/7/18" }, { "id": 50, "date": "2017/7/19" }, { "id": 100, "date": "2017/7/20" } ]'; $data = json_decode($json); $testdata = array(1,49,50,51,99,100,101); foreach ($testdata as $test) { printf('%d:%s<br>', $test, get_ymd($test, $data)); } function get_ymd($id, $data) { $ret = false; foreach ($data as $obj) { if ($obj->id <= $id) { $ret = $obj->date; } } return $ret; }

nixaht
質問者

お礼

ありがとうございます。意図した処理が出来ました。

関連するQ&A

  • MySQL→PHP→JSONをしたいのですが…

    現在、MySQLから取得したID一覧をJSON形式で出力したいのですが、うまくいきません。どうしたらよいでしょうか?よろしくお願いします。 なお、PHPでは以下のような処理をおこなっています。 ///////////////////////////////////////////////////////////////////// ・ ・ ・ //SQLを発行して結果セットを取得します $rst = mysql_query($sql); while ($col = mysql_fetch_array($rst)) { $return[] = $col; } function get_id($f) { return $f["dataid"]; } $return = array_map( "get_id", $return ); // JSON形式にして返す if( $return ) print Jsphon::encode( $return ); ・ ・ ・//////////////////////////////////////////////////////////////////// このようなかんじです。 この出力結果は『 ["18","19","20"] 』このようになるのでJSONでうまく処理できていないようです。 JSON形式なら『 {"dataid":"18","dataid":"19","dataid":"20"} 』 になるはずなのですが…何故でしょうか?教ええてください。お願いします。

    • ベストアンサー
    • PHP
  • php5.16でjsonを使うには?

    http://www.dezinerfolio.com/dfgallery-2/free-flash-gallery こちらのFlashギャラリーを使用したくて苦戦しています。 サイトではphp5+と説明されているのですが、json関数を使用できないとうまくデータのやり取りができないようです。 なんとかphp5.16の環境でjsonを使えるように試しているのですが、 http://www123.ddo.jp/extwiki/?2.0%2Fjson_encode%E9%96%A2%E6%95%B0 という、json encodeを試してみてもだめでした。 これはphp4.xでjsonを使用する為のものみたいです。 php5.16でjson encodeを使用できるようなうまい方法はないでしょうか? よろしくお願い致します。

    • 締切済み
    • PHP
  • phpにてjsonの利用ができなくなりました

    phpにてjsonの利用ができなくなりました yum phpインストール後 peclにてjsonをインストールし動いておりました。 ある時点よりPHPのjsonのエラーが出るようになり、プログラムが動かなくなりました。 解決方法わかる方いらっしゃいましたら、ご教授お願い致します。 エラー: PHP Fatal error: Call to undefined function json_encode() やってみたこと:  yum php やphp-devel、pecl でjsonを入れなおしたり、  php.ini php.d/json.ini を記述してみたり、  jsonのtar.gzを落としてコンパイルしておいてみたり  としたのですが、動きません. その他状況: ・php -m にてjsonが表示されますが ・phpinfo()ではjsonの項目が表示されません 怪しい点: 利用できなくなった前後で yum update で全てのアップデートを行っています。 よろしくお願いいたします。

    • 締切済み
    • PHP
  • PHPでのJSONの使い方(3)

    昨日 PHPでのJSONの使い方(1)と(2)で質問させていただき、hogehoge78さんから的確な回答を頂き、問題が解決したと思って質問を締め切った者です。 頂いたアドバイス通りに会社でやったらちゃんと動いたのですが、家に帰ってブラウザーの閲覧履歴やクッキーなどをすべてクリアーした後にプログラムを走らせてみても動きません。 hogehoge78さんのアドバイスにあった様にChromeの開発者用ウィンドウを開いてエラーメッセージを見ましたら、以下のような事が出力されていました。 VM11:2 Uncaught SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>) at XMLHttpRequest.xmlhttp.onreadystatechange (displayEnglish.php:27) 27とはファイルの行数だと思うのですが、この行は次の通りです。 if(this.readyState == 4 && this.status == 200){ 「JSON.parse で予期せぬJSON入力の終わり」とは一体どういうことなのでしょうか。 Hogehoge78さんがたまたまこの質問を見て頂いたなら、ご回答いただけると有難いです。 でももちろん、ご回答いただける方ならどなたでも歓迎いたします。 どうかよろしくお願いいたします。

    • ベストアンサー
    • PHP
  • php-json

    php-jsonをwindows環境でインストールしたいのですが調べてもunixの方法しかなくわかりません。 一応ダウンロードはして解凍まではしたのですが、これだけではだめですよね?

    • ベストアンサー
    • PHP
  • phpでの日付の取得について

    PHPでサイト内に、1週間分の日付を表示させ 日付ごとに指定したページに移動するよう、リンクを張りたいと思っております。 以下で日付は表示できたのですが 日付と日付の間にスペースを入れたいです。 ※可能であれば曜日も表示させたいです。 ↓現在、このように表示されます。 1/181/191/201/211/221/231/24 また、日付ごどに指定サイトへリンクも貼りたと思ってます。 <?php $nday = mktime(); for($i=0;$i<7;$i++){ print date("n/j",mktime(0,0,0,date("m",$nday),date("d",$nday)+$i,date("y",$nday)))."<td>"; } ?> どなたか、ご教授いただけないでしょうか? 以上、宜しくお願いいたします。

    • ベストアンサー
    • PHP
  • PHPで.jsonを保存せずにデータの取得

    はじめまして、よろしくお願いいたします。 ポストで送信した値が.jsonにて外部ドメイン(クロスドメイン)にて戻ってくるのですが、ブラウザ側で保存タブが出てしまいます。 この.jsonファイルを保存せずにPHP側で取得して出力をしたいのですが、どのようにしたら取得できるのかを解る方がおられましたら教えてください。 以下のような感じで試しましたが取得できませんでした。 いろいろ試しましたが、どうやってもブラウザに保存タブが出てしまいます。 以下サンプルコード $json_string = file_get_contents('php://input', true); $obj = json_decode($json_string); var_dump($obj); よろしくお願いいたします。 ※OKWAVEより補足:テーマ「php」から投稿された質問です。

    • ベストアンサー
    • PHP
  • phpに値が送られない

    PHP側に値が送られなくて困ってます!! どなたか助けて頂けないでしょうか $(function() { $('a') .click(function() { var id = this.id; alert(id); $.ajax({ type: 'POST', dataType:'json', url:'editor_text.php', data:{ item:id }, success:function(data) { alert(data); }, error:function(XMLHttpRequest, textStatus, errorThrown) { alert(textStatus); } }); }); });

    • ベストアンサー
    • AJAX
  • php5-fpmでjson_encode()エラー

    json_encode()を有効にするにはどうしたらいいでしょうか? ・エラーメッセージ Error: Call to undefined function json_encode() File: /var/www/cake.net/lib/Cake/View/Helper.php Line: 516 ・環境 ubuntu13.10 nginx php5-fpm ※cakephpのチュートリアル勉強中です ・やったこと phpのインストール $ sudo aptitude install php5 php5-cgi php5-cli php5-mysql php5-gd php-apc php5-fpm php5-curl php5-json php5-dev $ php /var/www/hoge.com/app/webroot/phpinfo.php Loaded Configuration File→/etc/php5/fpm/php.ini $ sudo vim /etc/php5/fpm/php.ini 最後の行に extension=json.so 追加 $ sudo vim /etc/php5/mods-available/json.ini ; configuration for php json module priority=20 extension=json.so $ sudo service php5-fpm restart $ sudo service nginx restart -- 以上です jsonを扱ったことないので質問の仕方もあっているかどうかわかりませんが ubuntu+nginx環境のphp5-fpmでjsonを扱う場合はどうしたらいいでしょうか? phpinfo()して確認してもjsonの記述はModule Authorsのところにしか出てきません ご回答お待ちしております

    • ベストアンサー
    • PHP
  • PHP初心者です。JSONが参照できません・・・

    普段Webのデザイン・コーダーを担当しておりますが、 PHPのフォームを修正することになりました。 その中でJSONから値を参照しなければならないのですが、 JSONにリスト名?があるせいか、うまく取得できません。 $test = 'Store:[ { "store_name":"ストア1", "store_id":"10" }]'; var_dump(json_decode($test, true)); 上の「Store」がなければ配列の中身を参照できるのですが・・・。 そもそもJSONのフォーマットが間違えているのでしょうか。 他のページでこのJSONを使用しているので、なるべく変更したくないのが現状です。 かなり初歩的な質問で申し訳無いのですが、ググってもこの形式(Storeがあるような)ではひっかからなかったため、質問させていただきました。 何卒、宜しくお願いします。

    • ベストアンサー
    • PHP