ホームページ  >  記事  >  バックエンド開発  >  PHP での 2 つの配列間の数の数え方について

PHP での 2 つの配列間の数の数え方について

WBOY
WBOYオリジナル
2016-06-23 13:18:39917ブラウズ




助けてください!
今私がしなければならないことは、アンケートを作成し、何人が ABC を選択したかなど、他の人が質問にどのように答えたかを数えることです。
最初の写真は、他の人が私のデータベースに送信したコンテンツです。配列の内部
2枚目の写真は質問と選択肢です
このようにデータを2つの数字の組み合わせに割り当てるのが適切かわかりません?
統計を行いたい場合、プログラムはどのように書けばよいでしょうか?
数日間考えていました。 。 。


ディスカッションへの返信(解決策)

これはデータベース内のグループクエリによって実行できます
それを行うためにphpを使用する必要はありません

どうしても使いたい場合php配列を作成し、var_exportを使用して出力したテストデータを投稿してください



データベース内のテーブルの問題設定フォームと他の方が提出したフォームには以下のようなフィールドもあります。名前、メッセージ、電話番号など。統計はありません、、、、数日考えても接続先が見つかりません、、、

配列 (サイズ = 4)
0 =>
配列 (サイズ = 8)
配列 (サイズ = 2)
'名前' => '値' => 文字列 '123' (長さ=3)
1 => 配列 (サイズ=2)
'名前' => 文字列 'メッセージ内容' (長さ=12)
'値' => '123' (長さ = 3)
2 =>
配列 (サイズ = 2)
名前' => 文字列 '連絡先番号' (長さ = 12) '値' => 文字列 '9896' (長さ = 4)
3 =>
配列 (サイズ = 2)
'名前' => 文字列 '性別' (長さ = 6)
'値' => 文字列 '女性' (長さ = 3)
5 =>
配列 (size=2)
'name' => 文字列 'あなたのキャリアの方向性は何ですか? (複数選択)' (長さ=42) '値' => 文字列 '
観光、運輸、民間航空業界、
飲食業界、
その他
' (長さ=49)
6 =>
配列 (サイズ= 2)
'name' => string '新しい雇用に必要な給与はいくらですか? ' (length=33) 'value' => string '2000-2500' (length=9) 7 => array (size=2) 'name' => string '専門的に学んだことは何ですか? (複数選択)' (長さ=36) '値' => 文字列 '経済と経営、建設、化学工学、製薬' (長さ=38)
1 => 配列 (サイズ=5)
0 =>
配列 (サイズ=2) '名前' => 文字列 'メッセージの内容' (長さ=12) '値' => 文字列 'Hey' (長さ=6)
2 => 配列 (サイズ=2) '名前' = & gt; 文字列 '連絡先番号 (長さ = 12)
' 値 '= & gt; 文字列 '(長さ = 12)
4
配列 (サイズ=2) '名前' => 文字列 'よく利用する Web サイト、よく利用する Web サイト' (長さ=45) '値' 文字列 'タオバオ タオバオ タオバオ タオバオタオバオ タオバオ br/> (長さ=53)
2 => 配列 (サイズ=2)
'名前' =>長さ=6 )
) '値' = & GT; 文字列 '意味、"(長さ = 15)
2 = & gt;
配列 (サイズ = 2)
' 名前 '= & gt; 文字列' 値' => 文字列 '13088888888' (長さ=11)
3 => 配列 (サイズ=2)
'名前' => 文字列 '性別' (長さ=6)
'値' => 文字列 '男性' (長さ=3)
3 =>
配列 (サイズ=4)
0 =>
配列 (サイズ=2)
'名前' => '値' = > 文字列 'What' (長さ=6)
1 => 配列 (サイズ=2)
'名前' => 文字列 'メッセージ内容' (長さ=12)
'値' => ' (長さ=18)
2 =>
配列 (サイズ=2)
'名前' => 文字列 '連絡先番号' (長さ=12)
'値' => 文字列 '123 45597744 ' (長さ= 11)
3 =>
配列 (サイズ = 2)
'名前' => 文字列 '性別' (長さ = 6)
'値' => 文字列 '女性' (長さ = 3) --------------------------------------


配列 (size=5)
'性別' =>
配列 (サイズ = 2)
0 => 文字列 '男性' (長さ = 3)
1 => 文字列 '女性' (長さ = 3)
'次回、あなたは就職を選択しますか?ビジネスを始めるには? ' =>
配列 (サイズ=3)
0 => 文字列 '雇用' (長さ=6)
1 => 文字列 '起業家精神' (長さ=6)
2 => 文字列 '高等教育を受ける' (長さ=12)
'あなたの職業は何ですか?方向? ? (複数選択)' => 配列 (サイズ=9)
0 => 文字列 'IT および通信業界' (長さ=14)
1 => 文字列 '金融、証券、保険業界' (長さ=27) )
2 => 文字列 '不動産業界' (長さ=12)
3 => 文字列 '医療および食品業界' (長さ=15)
4 => 文字列 '観光、運輸および民間航空業界' ( length=21)
5 => 文字列 '政府機関' (length=12)
6 => 文字列 '飲食業' (length=12)
7 => 文字列 '個人起業家' (length=12)
8 => string 'Others' (length=6)
'新しい雇用に必要な給与はいくらですか? '= & Gt; 配列 (サイズ = 4)
0 = & gt; 文字列' 1000-1500 '(長さ = 9)
1 = & gt; 文字列' 1500-2000 '(長さ = 9) gt; 文字列 ' 2000-2500' (長さ=9)
3 => 文字列 '2500 以上
' (長さ=13)
'あなたの専攻は何ですか? (複数選択)' => 配列 (サイズ = 8)
0 => 文字列 '経済と管理' (長さ = 9)
1 1 => 文字列 '機械' (長さ = 9)
2 => ; 文字列 '建設工学' (長さ=9)
3 => 文字列 '化学および製薬' (長さ=18)
5 =>商業、情報、ソフトウェア' (長さ=33)
6 => 文字列 '文法' (長さ=9)
7 => 文字列 '教育' (長さ=9)

これは var_dump の結果です。使用する前に変更する必要があります
var_export は php コード形式を出力し、直接使用できます

array ( 0 => array ( 0 => array ( 'name' => 'Name', 'value' => '123', ), 1 => array ( 'name' => 'メッセージ内容', '値' => '123', ), 2 => 配列 ( '名前' => '連絡先番号', '値' => '9896', ), 3 => 配列( 'name' => '性別', 'value' => '女性', ), 4 => array ( 'name' => '次回は就職と起業を選択します', ' value' => '雇用', ), 5 => array ( 'name' => 'あなたの就職先は何ですか? (複数選択)', 'value' => ' 観光、運輸、民間航空業界, ケータリング業界、その他 ', ), 6 => array ( 'name' => '新規雇用に必要な給与はいくらですか?', 'value' => '2000-2500', ), 7 => ; array ( 'name' => 'あなたの専攻は何ですか? (複数選択)', 'value' => '経済および経営、建設、化学工学、医学', ), ), 1 => 0 => 配列 ( '名前' => 'ニックネーム', '値' => 'ははは', ), 1 => 配列 ( '名前' => 'メッセージ内容', '値' = > ; 'ねえねえ', ), 2 => 配列 ( '名前' => '連絡先番号', '値' => '111111111121', ), 3 => 配列 ( '名前' => '性別', '値' => '男性', ), 4 => array ( '名前' => 'よく利用するウェブサイトはどこですか?', '値' => 'タオバオ タオバオ タオバオ タオバオ タオバオ タオバオ
', ), ), 2 => array ( 0 => array ( 'name' => 'ニックネーム', 'value' => '人々は富とのために死ぬ鳥は餌のために死ぬ' , ), 1 => array ( 'name' => 'メッセージ内容', 'value' => 'どういう意味ですか', ), 2 => array ( 'name' = > '連絡先番号' , '値' => '13088888888', ), 3 => 配列 ( '名前' => '性別', '値' => '男性', ), 3 => 配列 ( 0 => 配列 ( '名前' => 'ニックネーム', '値' => '内容', ), 1 => 配列 ( '名前' => 'メッセージ内容', '値' => 'はははははは', ), 2 => 配列 ( '名前' => '連絡先番号', '値' => '12345597744', ), 3 => 配列 ( '名前' => ' 性別', '値' => ), ), )


---------------------- ---------- ------------------------


array ( '性別' => array ( 0 => '男性', 1 => '女性', ), '今度、あなたは就職しますか、それとも起業しますか?' => array ( 0 => '就職', 1 => '起業家精神', 2 => '高度な研究', ), 'あなたのキャリアの方向性は何ですか? (複数選択)' => 「IT・通信業」、1 =>「金融・証券・保険業」、3 =>「医療・食品業界」、4 =>民間航空業界、5 => '政府機関'、7 => '自営業'、8 => 'その他'、'あなたの給与要件は何ですか?新しい雇用? ' => 配列 ( 0 = > '1000-1500'、1 => '1500-2500'、3 => '2500 以上'、) , 'あなたの専攻は何ですか? (複数選択) )' => array ( 0 => '経営'、1 => '建設'、3 => '芸術'、 4 => '化学、医学'、5 => '電子商取引、情報、ソフトウェア'、7 => '教育'、)、) -- -
ははは~注意していませんでしたが、この形式は正しいでしょうか?助けてくれてありがとう! !

$d = array ( '性别' => array ( 0 => '男', 1 => '女', ), '接下来的时间,您是选择就业、创业?' => array ( 0 => '就业', 1 => '创业', 2 => '升学读书', ), '您的就业择业方向是?(多选)' => array ( 0 => 'IT与通讯业', 1 => '金融、证券、保险业', 2 => '房地产业', 3 => '医药食品业', 4 => '旅游交通民航业', 5 => '政府机关', 6 => '餐饮行业', 7 => '自我创业', 8 => '其他', ), '您对刚就业工资要求是?' => array ( 0 => '1000-1500', 1 => '1500-2000', 2 => '2000-2500', 3 => '2500以上 ', ), '您所学的专业是?(多选)' => array ( 0 => '经管类', 1 => '机械类', 2 => '建工类', 3 => '艺术类', 4 => '化工、医药类', 5 => '电子商务、信息、软件类', 6 => '文法类', 7 => '教育类', ), );$a = array ( 0 => array ( 0 => array ( 'name' => '姓名', 'value' => '123', ), 1 => array ( 'name' => '留言内容', 'value' => '123', ), 2 => array ( 'name' => '联系电话', 'value' => '9896', ), 3 => array ( 'name' => '性别', 'value' => '女', ), 4 => array ( 'name' => '接下来的时间,您是选择就业、创', 'value' => '就业', ), 5 => array ( 'name' => '您的就业择业方向是?(多选)', 'value' => ' 旅游交通民航业, 餐饮行业, 其他 ', ), 6 => array ( 'name' => '您对刚就业工资要求是?', 'value' => '2000-2500', ), 7 => array ( 'name' => '您所学的专业是?(多选)', 'value' => '经管类,建工类,化工、医药类', ), ), 1 => array ( 0 => array ( 'name' => '昵称', 'value' => '哈哈哈', ), 1 => array ( 'name' => '留言内容', 'value' => '嘿嘿', ), 2 => array ( 'name' => '联系电话', 'value' => '111111111121', ), 3 => array ( 'name' => '性别', 'value' => '男', ), 4 => array ( 'name' => '你喜欢常去哪个网站你喜欢常去哪', 'value' => '淘宝淘宝淘宝淘宝淘宝淘宝淘宝淘宝', ), ), 2 => array ( 0 => array ( 'name' => '昵称', 'value' => '人为财死鸟为食亡', ), 1 => array ( 'name' => '留言内容', 'value' => '什么意思啊', ), 2 => array ( 'name' => '联系电话', 'value' => '13088888888', ), 3 => array ( 'name' => '性别', 'value' => '男', ), ), 3 => array ( 0 => array ( 'name' => '昵称', 'value' => '什么', ), 1 => array ( 'name' => '留言内容', 'value' => '哈哈哈哈哈哈', ), 2 => array ( 'name' => '联系电话', 'value' => '12345597744', ), 3 => array ( 'name' => '性别', 'value' => '女', ), ), );foreach($a as $item) {  foreach($item as $v) if(isset($d[$v['name']])) @$res[$v['name']][$v['value']]++;}print_r($res);

こんにちは、@$res[$v['name']][$v['value']]++

なぜこれの前に @ を追加するのですか?

Array(    [性别] => Array        (            [女] => 2            [男] => 2        )    [您的就业择业方向是?(多选)] => Array        (            [ 旅游交通民航业, 餐饮行业, 其他 ] => 1        )    [您对刚就业工资要求是?] => Array        (            [2000-2500] => 1        )    [您所学的专业是?(多选)] => Array        (            [经管类,建工类,化工、医药类] => 1        ))


また、送信された配列内で、それらのいくつかが複数選択されています。複数選択された項目に対する回答は、カンマで区切られています。これらの複数選択された項目を適切に処理するにはどうすればよいですか?

わかりやすく説明していただきありがとうございます。ありがとう!

あなたの質問です
例えば、経済学、経営学、建設学、化学工学、医学は元々あなたが学んだ専攻に属しますか? (選択式)経済・経営、建設、化学工学、医学のサブカテゴリーですが、紐でつなぐと一つの項目になります。配列に切り分けて、それぞれを数えてください

$d = array ( '性别' => array ( 0 => '男', 1 => '女', ), '接下来的时间,您是选择就业、创业?' => array ( 0 => '就业', 1 => '创业', 2 => '升学读书', ), '您的就业择业方向是?(多选)' => array ( 0 => 'IT与通讯业', 1 => '金融、证券、保险业', 2 => '房地产业', 3 => '医药食品业', 4 => '旅游交通民航业', 5 => '政府机关', 6 => '餐饮行业', 7 => '自我创业', 8 => '其他', ), '您对刚就业工资要求是?' => array ( 0 => '1000-1500', 1 => '1500-2000', 2 => '2000-2500', 3 => '2500以上 ', ), '您所学的专业是?(多选)' => array ( 0 => '经管类', 1 => '机械类', 2 => '建工类', 3 => '艺术类', 4 => '化工、医药类', 5 => '电子商务、信息、软件类', 6 => '文法类', 7 => '教育类', ), );$a = array ( 0 => array ( 0 => array ( 'name' => '姓名', 'value' => '123', ), 1 => array ( 'name' => '留言内容', 'value' => '123', ), 2 => array ( 'name' => '联系电话', 'value' => '9896', ), 3 => array ( 'name' => '性别', 'value' => '女', ), 4 => array ( 'name' => '接下来的时间,您是选择就业、创', 'value' => '就业', ), 5 => array ( 'name' => '您的就业择业方向是?(多选)', 'value' => ' 旅游交通民航业, 餐饮行业, 其他 ', ), 6 => array ( 'name' => '您对刚就业工资要求是?', 'value' => '2000-2500', ), 7 => array ( 'name' => '您所学的专业是?(多选)', 'value' => '经管类,建工类,化工、医药类', ), ), 1 => array ( 0 => array ( 'name' => '昵称', 'value' => '哈哈哈', ), 1 => array ( 'name' => '留言内容', 'value' => '嘿嘿', ), 2 => array ( 'name' => '联系电话', 'value' => '111111111121', ), 3 => array ( 'name' => '性别', 'value' => '男', ), 4 => array ( 'name' => '你喜欢常去哪个网站你喜欢常去哪', 'value' => '淘宝淘宝淘宝淘宝淘宝淘宝淘宝淘宝', ), ), 2 => array ( 0 => array ( 'name' => '昵称', 'value' => '人为财死鸟为食亡', ), 1 => array ( 'name' => '留言内容', 'value' => '什么意思啊', ), 2 => array ( 'name' => '联系电话', 'value' => '13088888888', ), 3 => array ( 'name' => '性别', 'value' => '男', ), ), 3 => array ( 0 => array ( 'name' => '昵称', 'value' => '什么', ), 1 => array ( 'name' => '留言内容', 'value' => '哈哈哈哈哈哈', ), 2 => array ( 'name' => '联系电话', 'value' => '12345597744', ), 3 => array ( 'name' => '性别', 'value' => '女', ), ), );foreach($a as $item) {  foreach($item as $v) if(isset($d[$v['name']])) @$res[$v['name']][$v['value']]++;}print_r($res);

Array(    [性别] => Array        (            [女] => 2            [男] => 2        )    [您的就业择业方向是?(多选)] => Array        (            [ 旅游交通民航业, 餐饮行业, 其他 ] => 1        )    [您对刚就业工资要求是?] => Array        (            [2000-2500] => 1        )    [您所学的专业是?(多选)] => Array        (            [经管类,建工类,化工、医药类] => 1        ))

@$res[$v['name']][$sub]++; の前に @ を追加する主な目的は何ですか?この変数?

「未割り当ての変数を使用しています」というエラー メッセージをシールドします


「未割り当ての変数を使用しています」というエラー メッセージをマスクします


この形式に対応する配列に変更すると、使用できないことがわかりましたページの volist タグ。 。

それなら自分で変形できます

それなら自分で変形できます



わかりました、ありがとう!

それなら自分で変形することもできます

こんにちは、もう一つ質問させてください
横断した後、並べ替えがめちゃくちゃになってしまいました どうすれば入力されたのと同じ順序に並べ替えることができますか? ?

最初に $res をプリセットできます

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。