1

我有一个数组(下面的示例),其中包含 3 个内容非常相似的数组。我想知道是否有一种简单的方法可以将所有内容放入一个数组中,而不是 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

您将无法拥有具有相同键值的关联数组(即“美国”的 3 个键等)。当您尝试在数组中设置这些键时,您将简单地覆盖以前的值。

于 2012-07-19T21:28:00.903 回答
1

我想知道是否有一种简单的方法可以将所有内容放入一个数组中

简短的回答是否定的。

您可以使用原始 int 的变量和发生次数的值创建一个类,然后让数组指向该类的对象。可以使用链表来实现相同的想法,尽管这两种方式都比你已经拥有的更复杂。

例如,键“美国”将指向一个对象,其中一个变量设置为 19,另一个变量设置为 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 回答