2012-09-13 165 views
0

我想轉換/形成以下數組作爲例子:如何在PHP中將數組分組到一個數組中?

Array ([product_category] => for-women) Array ([brand] => 7-diamonds) Array ([size] => 12) Array ([color] => 882536) 

進一個陣列,僅僅合併每個陣列對,並把它們放在一起:

Array ([product_category] => for-women [brand] => 7-diamonds [size] => 12 [color] => 882536) 

我試圖array_merge和它沒」工作。出來把我的代碼中的數組是從$ _SESSION它返回一個這樣的數組(一對鍵=>值):

foreach($_SESSION as $k => $v) { 
    if (strstr($k, 'saved_query_') == true) { 
     $saved = array_merge($v); 
    } 
} 

所以我通過具有查詢會話循環獲取每個陣列,其結果是數組對,我想結合所有找到的對(在這種情況下不知道如何使用array_merge)。

我試圖array_combine和array_merge他們似乎並不像我需要基於php手動功能:

array_combine - 通過使用密鑰一個陣列,另一個用於它的值創建一個數組

哪我不想這樣做,我只是想將小數組複製/移動到一個數組中,而不更改任何配對/鍵/值。

回答

2

您可以嘗試使用array_merge

$array0 = Array ("product_category" => "for-women"); 
$array1 = Array ("brand" => "7-diamonds") ; 
$array2 = Array ("size" => "12") ; 
$array3 = Array ("color" => "882536"); 

$array = array_merge($array0,$array1,$array2,$array3); 

print_r($array); 

輸出

Array ([product_category] => for-women [brand] => 7-diamonds [size] => 12 [color] => 882536) 

See Demo

* ----- -----更新*

如果您正在尋找通過會話

$_SESSION = Array(); 
$_SESSION[0] = Array("product_category" => "for-women"); 
$_SESSION[1] = Array("brand" => "7-diamonds"); 
$_SESSION[2] = Array("size" => "12"); 
$_SESSION[3] = Array("color" => "882536"); 

$final = array(); 
foreach ($_SESSION as $key => $value) { 
    $final = array_merge($final, $value); 
} 

print_r($final); 
+0

請參閱編輯的問題。我錯過了一些東西。當我循環$ _SESSION –

+0

看到更新的答案時,我需要合併/合併完成?這就是你需要的 – Baba

1

改爲使用array_merge

$ret = array_merge($arr1, $arr2, $arr3); 

與您的代碼,你應該做的:

$saved = array_merge($saved, $v); 
+0

對不起,請看到我的編輯。 –

+0

@AhmedFouad查看我的回答。 – xdazz

+0

非常感謝你 –

0

你應該有A L OOK在PHP中的array_merge()函數:http://php.net/manual/en/function.array-merge.php

爲只需使用如下:

$array1 = Array ([product_category] => for-women); 
$array2 = Array ([brand] => 7-diamonds); 
$array3 = Array ([size] => 12); 
$array4 = Array ([color] => 882536); 

$combined = array_merge($array1, $array2, $array3, $array4); 
相關問題