0

我创建了两个数组。首先,数组显示没有任何顺序的元素。所以,我必须首先按字母顺序和从低到高对它们进行排序。一旦按顺序排列,两个数组需要以这样的方式组合,即每个数组中的每个元素都根据它们的索引号组合

我的目标: 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用来做你想做的事。您只需要创建自己的循环即可解决问题。

您的代码甚至没有意义 - 您有两个一维数组,您将它们连接然后打印,就好像它们是二维数组一样?

于 2012-04-07T04:59:22.823 回答
0

我认为他只想要一个包含元素的数组,正如他所说:

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 回答