• 締切済み

配列をほかの配列の値で複数のグループに分けする(新しい配列を作る)には

UmJammerの回答

  • UmJammer
  • ベストアンサー率58% (115/196)
回答No.1

$sensyuをforeachでループ処理にかけて、IDsで振り分けて新しい配列を作っていけばよいと思います。

関連するQ&A

  • 配列データのグループ別け

    こんばんは。お世話になっております。 下記のような配列があり、各データの先頭にある番号(02_01とか)をグループごとに別けてカウントしたいのですが、この場合どのような手順で行ったら良いのでしょうか? Array ( [0] => 02_01 斉藤 ***@***.com [1] => 02_02 高木 ***@***.net [2] => 02_03 佐藤 ***@***.ne.jp [3] => 01_01 高橋 ***@***.com [4] => 02_01 鈴木 ***@***.co.jp [5] => 02_01 池田 ***@***.net [6] => 02_02 山田 ***@****.com ) ※上記各データのスペースは、全角スペースにて記述してますが、実際はタブ区切りとなっています。 やりたいこと、その1 以下のように、各グループ単位での件数を取得したい。 02_01 3件 02_02 2件 02_03 1件 01_01 1件 やりたいこと、その2 その1で別けた結果が何パターンあるか?を知りたく、上記例の場合、結果を4と返したい。 教えて君のようで恐縮ですが、色々と調べてはいるものの、DBでいうgroup by 句のような使い方が判らず、質問させていただきました。 お忙しい中恐縮ですが、アドバイスのほど宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 配列データを置き換える

    こんにちは。お世話になっております。 タイトルにあるように、配列のことでお伺いしたいのですが、 既に存在する配列($array1)と、ポストされた配列($array2)があるとします。 $array1=array("佐藤","田中","鈴木","吉田","加藤","岡田"); $array2=array("佐藤","佐々木","鈴木","吉田","岡田","加藤"); そこで、元の配列をポストされた配列に置き換えるようなものを作りたいのですが(実際は置き換えるというより、配列内を修正という感覚で行っています)、for文を用い配列内のデータ数を繰り返し処理を行いながら、array_splice()などを使いながら、ポストされたデータから元の配列と一致していれば、そのまま新規配列にセット。一致しなければ、ポストされたデータをセット。という具合に行うべきか?と、ソースを記述している段階なのですが、もっと効率のよい方法はないものか?と思い、皆さまにアドバイスいただきたく投函させて頂きました。 上手く説明できずに申し訳ありませんが、ご指導頂戴出来れば幸いです。 宜しくお願い致します。

    • ベストアンサー
    • PHP
  • 2つの連想配列を比較して一致するものを出力

    下記のような連想配列が2つあります。 それらの配列の3つ目の電話番号(070-0000-000等)のみを比較して一致する連想配列を配列にして出力するようなプログラムを考えています。 連想配列同士を比較する方法が見つからなかったため、どのように書いたら良いのかわかりません。 ご教授お願い致します。 【既存の連想配列】 <?php $first = array(     'test_1' => array(         0 => '山田太郎',         1 => 'ヤマダタロウ',         2 => '090-0000-0000',     ),     'test_2' => array(         0 => '田中次郎',         1 => 'タナカジロウ',         2 => '080-0000-0000',     ),     'test_3' => array(         0 => '佐藤三郎',         1 => 'サトウサブロウ',         2 => '070-0000-0000',     ), ); $second = array(     'test_1' => array(         0 => '鈴木四郎',         1 => 'スズキシロウ',         2 => '050-0000-0000',     ),     'test_2' => array(         0 => '佐藤五郎',         1 => 'サトウサブロウ',         2 => '070-0000-0000',     ),     'test_3' => array(         0 => '安藤六郎',         1 => 'アンドウロクロウ',         2 => '000-0000-0000',     ), ); ?> 【比較後の配列(例)】 $result //に結果を格納 この$resultの中身は、 array('佐藤五郎','サトウサブロウ','070-0000-0000'); のような感じです。

    • ベストアンサー
    • PHP
  • 多次元配列で特定キーが重複している箇所をランダムで

    PHP多次元配列で特定キーが重複している箇所をランダムで1つだけ表示したい ・id基準 ■元配列 Array (   [0] => Array     (       [id] => 5       [name] => "佐藤"       [age] => 5     )   [1] => Array     (       [id] => 5       [name] => "伊藤"       [age] => 7     )   [2] => Array     (       [id] => 5       [name] => "鈴木"       [age] => 12     )   [3] => Array     (       [id] => 8       [name] => "山田"       [age] => 17     )   [4] => Array     (       [id] => 8       [name] => "奈良"       [age] => 2     ) ■取得したいランダム結果配列例1 Array (   [0] => Array     (       [id] => 5       [name] => "佐藤"       [age] => 5     )   [3] => Array     (       [id] => 8       [name] => "山田"       [age] => 17     ) ■取得したいランダム結果配列例2 Array (   [1] => Array     (       [id] => 5       [name] => "伊藤"       [age] => 7     )   [4] => Array     (       [id] => 8       [name] => "奈良"       [age] => 2     ) ※1次元目のキーは元キーを維持していなくても構いません

    • ベストアンサー
    • PHP
  • 連想配列/オブジェクト? どちらなのか教えて

    ・色々やっている内よく分からないデータになったので、連想配列/オブジェクト? どちらなのか教えてください ■前提オブジェクト var t1 = { key1: '佐藤' , key2: '鈴木' }; ■配列作成 var t2 = new Array(); ■配列にオブジェクトを格納? t2[t1['key1']]=t1['key2']; console.log(t2); //[佐藤: "鈴木"] ■アクセスしてみる console.log("t2['佐藤']"); //鈴木 console.log(t2[0]); //undefined ■質問 ・t2[0]は、なぜundefined? ・t2配列0番目に「佐藤: "鈴木"」というオブジェクトが入っていると思ったのですが… ・t2は、連想配列/オブジェクトの何れでしょうか? ・挙動から推測するとオブジェクトっぽいのですが、外側のかっこが[]でもオブジェクトなのでしょうか? ・外側のかっこが[]は配列で、外側のかっこが{}はオブジェクトと思っているのですが…

  • excel 重複したデータのコピー

    例えばこんなデータがあるとします。 名前  値 鈴木  1 佐藤  2 佐藤  5 小林  2 田中  3 田中  1 田中  2 斉藤  0 山田  4 山田  2 というデータから 佐藤  2 佐藤  5 田中  3 田中  1 田中  2 山田  4 山田  2 という感じで名前が2つ以上あるデータだけ抽出・コピーをしたいのですが、 どういう風にすれば出来るでしょうか。

  • 配列にダブルクォーテーション付の値をいれたい

    以下のようにmemberテーブルから抽出したnameKanji配列に、 ダブルクォーテーション付の値をいれたいのです。 memberテーブルには、 1.田中 2.斉藤 3.鈴木 とはってるとして、 $array_nameKanji配列には、最終的に、 {"田中","斉藤","鈴木"} といれたいのです。 ***************************************** $sql = "SELECT nameKanji FROM member"; $rs = mysql_query($sql,$conn); $totalMember = mysql_num_rows($rs); for($i=0 ; $i<$totalMember ; $i++) { $rec = mysql_fetch_assoc($rs); → $array_nameKanji[$i] = $rec["nameKanji"]; } *************************************************** たとえば、 $array_nameKanji[$i] = "\"" . $rec["nameKanji"] . "\""; こうしてみると、 {"""田中""","""斉藤""","""鈴木"""} となってしまいます。 うまくやる方法をおしえてください。

    • ベストアンサー
    • PHP
  • 多次元配列の入れ替え

    いつもお世話になります。 PHPで多次元配列の入れ替えについて悩んでおります。 以下のようなデフォルトの配列から、整形後の配列 へ変換したいのですが、どのように扱ってよいか 頭が回らず困っています。 2次元目のクラスが等しいもののidをキーとして、 名前を値としたいのですが。。。 どうぞ宜しくお願いします(>へ<) //デフォルトの配列 Array (   [0] => Array     (       [id] => 1       [class] => A       [name] => 佐藤     )   [1] => Array     (       [id] => 2       [class] => A       [name] => 山下     )   [2] => Array     (       [id] => 3       [class] => B       [name] => 田中     )   [3] => Array     (       [id] => 4       [class] => B       [name] => 高橋     ) ) //整形後の配列 Array (   [A] => Array     (       [1] => 佐藤       [2] => 山下     )        [B] => Array     (       [3] => 田中       [4] => 高橋     )      )

    • ベストアンサー
    • PHP
  • 配列の使い方について

    二つ教えてください。 1.二次元配列で例えばファイルの一行目をグループ[1]に、二行目はグループ[2]に、三行目はグループ[1]に、四行目はグループ[3]に、みたいな感じでファイルの値を任意のグループ[n]に代入していきグループ分けする方法を教えてください。 2.上のような方法で作った配列を例えばグループ[2]にグループ[5]の要素をすべてつけたし、グループ[5]は削除する方法を教えてください。

  • エクセルでグループ分け

    お知恵を貸してくださいよろしくお願いします。 A:グループ名 B:性別 C:名前 が100人分横で入っています。 それを、グループごとに分けて、縦の一覧にしたいのです。   A B C 1 A 男 佐藤 2 C 女 山田 3 B 女 田中 4 A 女 鈴木   ↓(別シートに)   Aグループ   Bグループ   Cグループ 1 男 佐藤    女 田中    女 山田 2 女 鈴木 3 4 このように抽出して、並び替えることを関数をつかってできないでしょうか。よろしくご教示ください。