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

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

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

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

Q&A

解決済

2回答

6874閲覧

配列内で一番出現回数の多い値を習得する

ikemon

総合スコア39

PHP

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

0グッド

1クリップ

投稿2017/03/07 08:30

###前提・実現したいこと
PHPの配列内で、重複する値があるとき、一番出現回数の多い値の個数を取得したいです。
以下が配列例です。

PHP

1 2var_dump($hoge); 3 45 6 array(12) { 7 [0]=> 8 string(2) "18" 9 [1]=> 10 string(2) "19" 11 [2]=> 12 string(2) "20" 13 [3]=> 14 string(2) "21" 15 [4]=> 16 string(2) "22" 17 [5]=> 18 string(2) "18" 19 [6]=> 20 string(2) "19" 21 [7]=> 22 string(2) "20" 23 [8]=> 24 string(2) "22" 25 [9]=> 26 string(2) "10" 27 [10]=> 28 string(2) "18" 29 [11]=> 30 string(2) "19" 31}

###試したこと
まず、「array_count_values」関数を用いて配列内で重複する値をまとめてカウントしました。

PHP

1 2$hogehoge = array_count_values($hoge); 3var_dump($hogehoge); 4 56 7 array(6) { 8 [18]=> 9 int(3) 10 [19]=> 11 int(3) 12 [20]=> 13 int(2) 14 [21]=> 15 int(1) 16 [22]=> 17 int(2) 18 [10]=> 19 int(1) 20}

「18」「19」が一番数が多いところまでは取得できたのですが、ここからその個数(今回の場合「2」)を求める方法が分からず、投稿させていただきました。

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

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

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

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

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

guest

回答2

0

このようにしてはいかがでしょうか?

HTML

1<?php 2$hoge = [ 3 "18", 4 "19", 5 "20", 6 "21", 7 "22", 8 "18", 9 "19", 10 "20", 11 "22", 12 "10", 13 "18", 14 "19" 15]; 16$count = array_count_values($hoge); 17var_dump(max($count));

投稿2017/03/07 08:53

s8_chu

総合スコア14731

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

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

ikemon

2017/03/07 08:59

ありがとうございます!参考にさせていただきます!
guest

0

ベストアンサー

php

1$hoge = array('18', '19', '20', '21', '22', '18', '19', '20', '22', '10', '18', '19'); 2 3$countValues = array_count_values($hoge); 4$max = max($countValues); 5$keysOfMax = array_keys($countValues, $max); 6$result = count($keysOfMax); 7 8var_dump($result);

実行結果

int(2)

投稿2017/03/07 08:38

KiyoshiMotoki

総合スコア4791

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

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

ikemon

2017/03/07 08:55

ありがとうございます!実装できました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問