ここから本文です

配列の重複した文字列を、文字列ごとにカウントして取得することはできますか?

jjf********さん

2015/7/116:23:35

配列の重複した文字列を、文字列ごとにカウントして取得することはできますか?

"東京都","神奈川県","千葉県","神奈川県","東京都","埼玉県","東京都"

上記のような配列がひとつひとつ格納されていたとして
東京都が3
神奈川県が2
千葉、埼玉が1
という風に取得できますか?

宜しくお願い致します。

閲覧数:
162
回答数:
3

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

shimixさん

2015/7/117:19:16

RTFM.
http://www.php.net/manual/ja/function.array-count-values.php

(例)
<?php
$arr = array("東京都","神奈川県","千葉県","神奈川県","東京都","埼玉県","東京都");
// 値=>出現回数 の配列を生成
$vals = array_count_values($arr);
// 値(出現回数)で降順にする
arsort($vals);
// 結果を表示する
$outstr = array();
$outnum = 0;
foreach ($vals as $key=>$value) {
if ($value !== $outnum) {
if (count($outstr) > 0) {
printf('%sが%s<br>', implode(',', $outstr), $outnum);
$outstr = array();
}
}
$outstr[] = $key;
$outnum = $value;
}
if (count($outstr) > 0) {
printf('%sが%s<br>', implode(',', $outstr), $outnum);
}

この回答は投票によってベストアンサーに選ばれました!

ベストアンサー以外の回答

1〜2件/2件中

並び替え:回答日時の
新しい順
|古い順

k03********さん

2015/7/116:45:15

jjfkeicさん

int main()
{
char *str[7] = {"東京都","神奈川県","千葉県","神奈川県","東京都","埼玉県","東京都"};
int i,j,k,x[7];

for(i=0;i<7;++i)
x[i]=0;
for(i=0;i<7;++i)
{
if(x[i] == 0)
{
k=1;
printf("%-10s ",str[i]);
for(j=i+1;j<7;++j)
{
if(strcmp(str[i],str[j]) == 0)
{
x[j]=1;
++k;
}
}
printf("%4d\n",k);
}
}
return 0;
}

プロフィール画像

カテゴリマスター

mpywさん

2015/7/116:40:44

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる