[英]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.