如何在php中将数组分组为一个数组


How can I group arrays into one array in 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_component和array_merge,它们似乎不像我需要的基于php手册的功能:

array_component--通过使用一个数组作为键,另一个数组用于其值来创建数组

我不想这样做,我只想在一个数组中复制/移动小数组,而不更改任何配对/键/值。

您可以尝试使用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 )

参见演示

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

如果您正在查看会话

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

使用array_marge_recurive()

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

示例:http://codepad.viper-7.com/Yr0LTb

请改用array_merge

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

用你的代码,你应该做:

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

您应该了解一下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);