如何在php中将数组分组到一个数组中?

I would like to convert / form the following arrays as example:

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

Into one array that just merges each array pair and put them altogether :

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

I tried array_merge and it didn't work. The array out put in my code is from $_SESSION which returns an array (a pair key=> value) like this:

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

So I get each array by looping through session which has a query, the result is array pair, I want to combine all pairs found (Do not know how to use array_merge in that case).

I tried array_combine and array_merge they do not seem like the functions I need based on php manual:

array_combine — Creates an array by using one array for keys and another for its values

Which I do not want to do, I just want to copy/move small arrays in one array, without changing any pairing/key/value.

You can try using 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);

Output

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

See Demo

* ----- Update ----- *

If you are looking through a session

$_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);

Use array_merge instead.

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

With your code, you should do:

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

Use array_merge_recursive() :

$result = array_merge_recursive($ar1, $ar2 [, array $...]);

Example: http://codepad.viper-7.com/Yr0LTb

You should have a look at the array_merge() function in PHP: http://php.net/manual/en/function.array-merge.php

Simply use as follows:

$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);