0

例として、次の配列を変換/形成したいと思います。

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

各配列ペアをマージしてそれらをまとめる1つの配列に:

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 — 1つの配列をキーに使用し、別の配列をその値に使用して配列を作成します

やりたくないことですが、ペアリング/キー/値を変更せずに、小さな配列を1つの配列にコピー/移動したいだけです。

4

4 に答える 4

2

array_merge_recursive()を使用します。

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

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

于 2012-09-13T11:15:56.640 に答える
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 )

デモを見る

* - - - アップデート - - - *

セッションを見ている場合

$_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);
于 2012-09-13T11:17:42.083 に答える
1

array_merge代わりに使用してください。

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

コードを使用して、次のことを行う必要があります。

$saved = array_merge($saved, $v);
于 2012-09-13T11:13:43.377 に答える
0

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);
于 2012-09-13T11:16:04.927 に答える