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

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

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

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

Q&A

1回答

447閲覧

配列の中で要素が一番多いkeyを出力したい

退会済みユーザー

退会済みユーザー

総合スコア0

PHP

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

0グッド

0クリップ

投稿2021/10/12 00:40

編集2021/10/12 06:19

現在、PHPの学習を初めて2日の初心者です。

PHP

1$titles = [ 2 “php” => [“aaa”, “bbb”, “ccc”], 3 “java” => [“aaa”, “bbb”], 4 “ruby” => [“aaa”], 5 “python” =>[“aaa”, “bbb”, “ccc”, “ddd”] 6]; 7

実現したいこと

一番要素が多い言語はpythonです。

上記の配列から一番要素が多い言語を表示したいです。

どなたか教えていただけますでしょうか。

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

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

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

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

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

yambejp

2021/10/12 00:41

一番多いものが複数あった場合はどうするのでしょうか?
退会済みユーザー

退会済みユーザー

2021/10/12 00:52

すいません。特に配列を追加せず、記載した配列の中だけで実現したいので、そこまで考えてなかったです、、同時にその場合の処理もわかりません、、、
tanat

2021/10/12 04:36

countを使用し、一番要素が多い>pythonの要素数「4」を取得することはできたのですが のコードを質問に追記されると、質問の趣旨が伝わりやすいかと思いますよ
guest

回答1

0

とりあえず最大数が同じだったときはカンマ区切りとします

PHP

1$book_titles = [ 2 "php" => ["やさしいPHP", "独習PHP", "PHPフレームワークLaravel入門","test"], 3 "java" => ["やさしいJava", "Java言語で学ぶデザインパターン入門"], 4 "ruby" => ["たのしいRuby"], 5 "python" =>["たのしいPython", "スラスラわかるPython", "いちばんやさしいPythonの教本", "退屈なことはPythonにやらせよう"] 6]; 7$a=array_reduce(array_keys($book_titles),function($x,$y) use($book_titles){ 8 $x[count($book_titles[$y])][]=$y; 9 return $x; 10},[]); 11krsort($a); 12$b=array_shift($a); 13print "最大要素数のアイテムは".implode(",",$b);

解説

便宜上要素の順番は変えてあります。
以下実行結果とあわせて確認してみてください。

PHP

1<?PHP 2$book_titles = [ 3 "ruby" => ["たのしいRuby"], 4 "php" => ["やさしいPHP", "独習PHP", "PHPフレームワークLaravel入門","test"], 5 "java" => ["やさしいJava", "Java言語で学ぶデザインパターン入門"], 6 "python" =>["たのしいPython", "スラスラわかるPython", "いちばんやさしいPythonの教本", "退屈なことはPythonにやらせよう"] 7]; 8 9$keys=array_keys($book_titles); 10print "キーをリスト化<br>"; 11print_r($keys); 12print "<hr>"; 13$a=array_reduce($keys,function($x,$y) use($book_titles){ 14 print "要素数をカウント<br>"; 15 $count=count($book_titles[$y]); 16 print_r($count); 17 print "<hr>"; 18 $x[$count][]=$y; 19 print "要素数をキーにした要素をリスト化<br>"; 20 print_r($x); 21 print "<hr>"; 22 return $x; 23},[]); 24print "集計されたリスト<br>"; 25print_r($a); 26print "<hr>"; 27krsort($a); 28print "キーの逆順でソート<br>"; 29print_r($a); 30print "<hr>"; 31print "先頭データを取り出す<br>"; 32$b=array_shift($a); 33print_r($b); 34print "<hr>"; 35print "結合して表示<br>"; 36print_r(implode(",",$b));

投稿2021/10/12 00:58

編集2021/10/12 01:56
yambejp

総合スコア116724

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

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

退会済みユーザー

退会済みユーザー

2021/10/12 01:45

回答ありがとうございます! それぞれ使われている関数について調べたのですが、お教え頂いたコードがどこにどう対応しているのかイメージが掴めず、簡単に解説いただきたいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問