1

良い一日!配列のマージ/結合/連結でエラーが発生しました。

たとえば、私は配列を持っています、

$array1 [] = array(
'var1' => $var1,
'var2' => $var2,
'var3' => $var3,
);
$array2 [] = array(
'var4' => $var4,
'var5' => $var5,
'var6' => $var6,
);

これらの配列には、内部に複数のレコードがありますが、同じ数のレコードがあります。それらを var_dump すると、構造は次のようになります。

//array1
array(3){
    [0]=>array(3){
        ["var1"]=> string (4) "var1"
        ["var2"]=> string (4) "var2"
        ["var3"]=> string (4) "var3"
    }
    [1]=>array(3){
        ["var1"]=> string (4) "var1"
        ["var2"]=> string (4) "var2"
        ["var3"]=> string (4) "var3"
    }
    [2]=>array(3){
        ["var1"]=> string (4) "var1"
        ["var2"]=> string (4) "var2"
        ["var3"]=> string (4) "var3"
    }
}
//array2
array(3){
    [0]=>array(3){
        ["var4"]=> string (4) "var4"
        ["var5"]=> string (4) "var5"
        ["var6"]=> string (4) "var6"
    }
    [1]=>array(3){
        ["var4"]=> string (4) "var4"
        ["var5"]=> string (4) "var5"
        ["var6"]=> string (4) "var6"
    }
    [2]=>array(3){
        ["var4"]=> string (4) "var4"
        ["var5"]=> string (4) "var5"
        ["var6"]=> string (4) "var6"
    }
}

両方の配列を追加したい

$array_combined [] = array(
'var1' => $var1,
'var2' => $var2,
'var3' => $var3,
'var4' => $var4,
'var5' => $var5,
'var6' => $var6,
);

var_dump(ed) を実行すると、構造は次のようになるはずです。

//array_combined
array(3){
    [0]=>array(6){
        ["var1"]=> string (4) "var1"
        ["var2"]=> string (4) "var2"
        ["var3"]=> string (4) "var3"
        ["var4"]=> string (4) "var4"
        ["var5"]=> string (4) "var5"
        ["var6"]=> string (4) "var6"

    }
    [1]=>array(3){
        ["var1"]=> string (4) "var1"
        ["var2"]=> string (4) "var2"
        ["var3"]=> string (4) "var3"
        ["var4"]=> string (4) "var4"
        ["var5"]=> string (4) "var5"
        ["var6"]=> string (4) "var6"

    }
    [2]=>array(3){
        ["var1"]=> string (4) "var1"
        ["var2"]=> string (4) "var2"
        ["var3"]=> string (4) "var3"
        ["var4"]=> string (4) "var4"
        ["var5"]=> string (4) "var5"
        ["var6"]=> string (4) "var6"
    }
}

私は試した:

 $array_combine = array_combine($array1, $array2);
 $array_merge = array_merge($array1, $array2);
 $array_merge_recursive = array_merge_recursive($array1, $array2);

しかし、私はこのエラーを受け取り続けます:

注意: 未定義のインデックス: D:\xampp\htdocs\vra\GetVM の cmax - 行 365 の Copy.php

そこに投稿したコードは、実際のコードに似ています。
行 365 には echo ( $record['var4'] ) が含まれています。
結合/マージされた配列を出力するために、このようなことをしていました。

$array_merge = merge_array($array1, $array2)
foreach ( $array_merge as $record ) {
echo ( $record['var1'] );
echo ( $record['var2'] );
echo ( $record['var3'] );
echo ( $record['var4'] );//this is were the error occurs
echo ( $record['var5'] );//same error here
echo ( $record['var6'] );//same error here
}


array_combine()、array_merge_recursive および $combined_array = $array1 + $array2 を使用してみました

4

1 に答える 1

0

この問題は、多次元配列を使用し、それらを 1 次元配列として結合しようとしていることに起因していると思います。

それ以外の

$array_merge = array_merge($array1, $array2);

試す

$array_merge[0] = array_merge($array1[0], $array2[0]);
$array_merge[1] = array_merge($array1[1], $array2[1]);
$array_merge[2] = array_merge($array1[2], $array2[2]);
[ ... ]

それらを厳密に結合し、最初の値と 2 番目の値を決して上書きしない場合は、次を使用します。

$array_merge = $array1 + $array2;

配列のマージに関する追加の注意事項は、php.netにあります。

于 2012-06-22T02:13:04.953 に答える