2015-05-25 154 views
-1

我有此数组:PHP - 重新组织阵列到另一个阵列

Array ([7] => 44 [6] => 45 [4] => 46 [1] => 47 [2] => 48 [8] => 49 [5] => 50 [3] => 51) 

我想创建另一个阵列(或组织这一个),使我得到下面的数组:

Array ([1] => 47 [8] => 49 [2] => 48 [7] => 44 [3] => 51 [6] => 45 [4] => 46 [5] => 50) 

基本上是:

[Lowest index] => [Highest index] 
[Second lowest index] => [Second highest index] 
[Third lowest index] => [Third highest index] 
[Fourth lowest index] => [Fourth highest index] 

我需要这次重组是自动的,并用不同大小的数组工作。

+5

所以你有没有尝试自己编码任何东西? ot这只是一个“给我codez”的要求? –

+1

对不起,对于我来说,根据什么规则,不清楚应该构建新的数组。请尝试更具体。 – arkascha

+0

你必须更好地解释你想要做什么。你的问题不完全相加。 –

回答

0

我不知道这里有人是否会为您编写代码。人们喜欢看你做出自己的努力,然后问你何时遇到问题。

但是要指向正确的方向:查找array_keys()array_values()函数。然后使用它们来拆分数组,并对这两个数组(一个包含键,一个包含值)进行排序。最后,根据需要再次将您的阵列与array_combine()结合使用。

0

好的,完成了。这就是我所做的:

$arrayPos1 = array(); 
$posi = 3; 
$parti = 2; 

//Building first array with seeds 1, 3, 5 and 7 
$arrayPos1[1] = $arrayPart[1]; 
for($i=1;$i <= (count($arrayPart)/2 - 1);$i++){ 
    $arrayPos1[$posi] = $arrayPart[$parti]; 
    $posi = $posi + 2; 
    $parti = $parti + 1; 
} 
$arrayPos2 = array(); 
$posi = 2; 
$parti = count($arrayPart); 

//Building second array with seeds 2, 4, 6 and 8 
for($i=1;$i <= (count($arrayPart)/2);$i++){ 
    $arrayPos2[$posi] = $arrayPart[$parti]; 
    $posi = $posi + 2; 
    $parti = $parti - 1; 
} 

//Checking out the results 
print_r($arrayPos1); 
echo "<br>"; 
ksort($arrayPos2); 
print_r($arrayPos2); 
echo "<br>"; 

//Building final array 
for($i=2;$i <= (count($arrayPart));$i=$i+2){ 
    $arrayPos1[$i] = $arrayPos2[$i]; 
} 

//Sorting final array 
ksort($arrayPos1); 

这应该使现在更容易生成表格。 感谢您的帮助:)