我有一个数组(下面的示例),包含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
有什么解决方案吗?感谢
您将无法拥有具有相同键值的关联数组(即"America"的3个键等)。当您尝试在数组中设置这些键时,您只需覆盖以前的值。
我想知道是否有一种简单的方法可以把所有东西都放在一起阵列
简而言之,答案是否定的。
您可以创建一个类,其中包含原始int的变量和出现次数的值,然后使数组指向该类的对象。同样的想法也可以使用链表来实现,尽管这两种方法都比现有的更复杂。
例如,关键字"america"将指向一个对象,其中一个变量设置为19,另一个变量则设置为3。
问题:您需要知道一个值来自原始数组中的哪一个吗?如果是的话,那么我上面提到的将失去该属性。
http://php.net/manual/en/function.array-merge.php
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;
}