我创建了两个数组。首先,数组显示没有任何顺序的元素。因此,我必须首先按字母顺序和从低到高对它们进行排序。一旦按顺序排列,需要组合的两个数组,以便每个数组中的每个元素都根据其索引号进行组合。
我的目标: 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];
}
}
这不能由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
array_merge
对您希望它们排序的顺序一无所知。它甚至不知道内容是字母还是数字,更不用说与先前数组的内容相对应的字母表索引了!
简而言之,你不能用array_merge
做你想做的事。您只需要创建自己的循环即可解决问题。
你的代码甚至没有意义 - 你有两个一维数组,你把它们连接起来然后打印,就好像它们是二维数组一样??
我认为他只想要一个带有元素的数组,正如他所说:
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";
这是最好的组合方式 - 使用 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 />";
}