1

非常によく似た内容の 3 つの配列を含む配列 (以下のサンプル) があります。3 つの個別の配列ではなく、すべてを 1 つの配列に配置する簡単な方法があるかどうか疑問に思っていました。私が試したすべてのことは、データを上書きしているように見え、3番目の配列からの情報のみが残っています。

array
  0 => 
    array
      'america' => int 19
      'music' => int 6
      'states' => int 5
      'bank' => int 5
  1 => 
    array
      'america' => int 19
      'home' => int 3
      'society' => int 2
      'writers' => int 2
   2 => 
    array
      'america' => int 19
      'lutheran' => int 4
      'church' => int 4
      'national' => int 4
      'cruises' => int 3

理想的には、最終結果は次のようになります。

array
          'america' => int 19
          'music' => int 6
          'states' => int 5
          'bank' => int 5
          'america' => int 19
          'home' => int 3
          'society' => int 2
          'writers' => int 2
          'america' => int 19
          'lutheran' => int 4
          'church' => int 4
          'national' => int 4
          'cruises' => int 3

解決策はありますか?ありがとう

4

4 に答える 4

4

同じキー値を持つ連想配列を持つことはできません (つまり、"America" の 3 つのキーなど)。これらのキーを配列に設定しようとすると、単純に以前の値が上書きされます。

于 2012-07-19T21:28:00.903 に答える
1

すべてを1つの配列に入れる簡単な方法があるかどうか疑問に思っていました

短い答えはノーです。

元の int の変数とそれが発生する回数の値を持つクラスを作成し、配列がクラスのオブジェクトを指すようにすることができます。リンクされたリストを使用して同じアイデアを実装できますが、どちらの方法も既に持っている方法よりも複雑です。

たとえば、キー 'america' は、1 つの変数が 19 に設定され、もう 1 つの変数が 3 に設定されたオブジェクトを指します。

質問:値が元の配列のどれから来ているかを知る必要がありますか? もしそうなら、私が上で述べたことはそのプロパティを失うでしょう。

于 2012-07-19T21:37:38.840 に答える
0

http://php.net/manual/en/function.array-merge.php

于 2012-07-19T21:32:08.327 に答える
0
function array_2d_to_1d($array)
                                    {
                                        $my_val=array();
                                        $my_key=array();
                                        foreach ($array as $value) {
                                             array_push($my_val, $value['cat_title']);
                                             array_push($my_key, $value['cat_id']);
                                         }

                                        $result = array_combine($my_key, $my_val);
                                        return $result;

                                    }                                
于 2015-07-15T20:17:15.380 に答える