0

2 つの配列を作成しました。最初に、配列は順序なしで要素を表示します。そのため、最初にアルファベット順で最低から最高に並べ替える必要があります。順番に、各配列の各要素がインデックス番号に従って結合されるように結合する必要がある 2 つの配列。

私の目標: a0 b1 c2 d3 e4 f5 g6

私が得ているもの: abcdefg0123456

$array1 = array("b", "f", "g", "a", "c", "d", "e");
    $array2 = array("5", "0", "1", "4", "3", "2", "6");
    sort($array1);
    sort($array2);

    echo "<pre> \n";
    print_r($array1);
    echo "</pre> \n";

    echo "<pre> \n";
    print_r($array2);
    echo "</pre> \n";

    echo "<h3 style='font-family:Helvetica'>Combining Arrays</h3>";
    $array3 = array_merge($array1, $array2);


    for($i = 0; $i < 7; $i++)
    {
        for($j = 0; $j < 7; $j++)
        {
            echo $array3[$i] [$j];
        }
    }
4

4 に答える 4

3

これは、array_merge では実行できません。単純なループを使用します。

   

    $array1 = array("b", "f", "g", "a", "c", "d", "e");
    $array2 = array("5", "0", "1", "4", "3", "2", "6");
    sort($array1);
    sort($array2);
    for($j = 0; $j < 7; $j++){
        echo "{$array1[$j]}{$array2[$j]} ";
    }

    http://ideone.com/LLdVm

于 2012-04-07T05:04:00.630 に答える
0

array_merge並べ替えたい順序については何も知りません。前の配列の内容に対応するアルファベットのインデックスは言うまでもなく、内容が文字か数字かについても何も知りません!

要するに、array_mergeやりたいことをするために使用することはできません。問題を解決する独自のループを作成するだけです。

あなたのコードは意味がありません.2つの1次元配列を連結して2次元配列であるかのように出力しますか??

于 2012-04-07T04:59:22.823 に答える
0

彼が述べたように、彼は要素を持つ配列を1つだけ望んでいると思います:

a0 b1 c2 d3 e4 f5 g6

これはうまくいくはずです:

$array3 = array();
for($i = 0; $i < 7; $i++){
  $array3[] = $array1[$i].$array2[$i];
}
echo "<pre> \n";
print_r($array3);
echo "</pre> \n";
于 2012-04-07T05:05:55.337 に答える
0

これは組み合わせる最良の方法です-使用array_combine

    $array1 = array("b", "f", "g", "a", "c", "d", "e");
        $array2 = array("5", "0", "1", "4", "3", "2", "6");
        sort($array1);
        sort($array2);

        echo "<pre> \n";
        print_r($array1);
        echo "</pre> \n";

        echo "<pre> \n";
        print_r($array2);
        echo "</pre> \n";

        echo "<h3 style='font-family:Helvetica'>Combining Arrays</h3>";

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


        $array3 = array_combine($array1, $array2);


        echo "<pre> \n";
        print_r($array3);
        echo "</pre> \n";

        foreach($array3 as $letter => $number){
            echo "$letter:$number <br />";
        }
于 2012-04-07T05:29:21.313 に答える