1

array_merge_recursive私はSOを検索していて、数値キーのデフォルトの動作を回避するためのハックのように感じるいくつかのソリューションに出くわしました。たとえば、最初にアンダースコアを追加して、数値を文字列に変更できることを読みました。

とにかく、これが私のデータセットと意図された結果です...

array ( "Name1", "Name2", "Name3" );
array ( "Data1", "Data2", "Data3" );
array ( "Price1", "Price2", "Price3" );

意図した結果:

array ( 1 => array ( "Name1", "Data1", "Price1" ), 2 => array ( "Name2", "Data2", "Price2" ), 3 => array ( "Name3", "Data3", "Price3" );

array_merge_recursiveが通常数値キーでどのように動作するかをご存知だと思います...これが私の現在のマージ結果です。

array ( "Name1", "Name2", "Name3", "Data1", "Data2", "Data3", "Price1", "Price2", "Price3");

これには適切な方法がありますか?文字列キーを作成するためにアンダースコアを追加するなど、個々のメソッドの長所と短所は何ですか?

4

2 に答える 2

4

簡単な回避策は、次のようなまったく異なるアプローチになります。

$merged = array_map(function () { return func_get_args(); }, $array1, $array2, $array3);
于 2012-07-03T13:58:30.460 に答える
0
$merge_array = array();
for($i = 0; $i < count($array1); $i++) {
    $row = array();
    $row[] = $array1[$i];
    $row[] = $array2[$i];
    $row[] = $array3[$i];
    $merged_array[] = $row;
}

それはうまくいくはずです。

于 2012-07-03T14:03:39.573 に答える