2015-05-25 3 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

Итак, вы что-то пробовали самостоятельно? От это просто запрос «дайте мне кодз»? –

+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); 

Это должно облегчить создание таблиц. Спасибо за помощь ребятам :)

Смежные вопросы