[英]turn 2d array into 1d PHP
我有一个数组(下面的示例),其中包含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的对象。
问题:您是否需要知道值来自哪个原始数组? 如果是,那么我上面提到的将失去该属性。
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;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.