2013-12-10 3 views
1

Хорошо, поэтому я боролся с этим в течение нескольких часов, и я не могу понять, что я пытаюсь сделать. У меня есть массив со многими процентами, размещенными внутри, и я распечатываю первые 5 из них. Переменные $ процентов приобретаются через similar_textКак изменить имена переменных внутри массива php

$array=array($percent12, $percent13, $percent14, 
    $percent15, $percent16, $percent17, 
    $percent18, $percent19, $percent110, 
    $percent111, $percent112, $percent113, 
    $percent114, $percent115, $percent116, 
    $percent117, $percent118, $percent119, 
    $percent120); 

print_r(array_slice($array,0,5)); 

и выводит как это:

Array ([0] => 36.015505697169 [1] => 2.4181626187962 [2] => 2.4181626187962 [3] => 5.2153134902083 [4] => 100) 

Так что я пытаюсь выяснить здесь, если это возможно, чтобы распечатать результаты моего массива в качестве они перечислены выше. Пример вывода будет выглядеть следующим образом:

Array ([percent12] => 36.015505697169 [percent13] => 2.4181626187962 [percent14] => 2.4181626187962 [percent15] => 5.2153134902083 [percent16] => 100) 

я чувствую, что это не возможно, но если нет, то есть способ, чтобы назначить

[0]=> 36.015505697169 [1]=> 2.4181626187962 

... и т.д. выводить что-то еще сказать например:

[web0]=> 36.015505697169 [web1] => 2.4181626187962 

Помогите пожалуйста! Это сводит меня с ума!!

ответ

1

Вы должны сделать это ассоциативный массив:

$array=array('percent12' => $percent12, 
      'percent13' => $percent13, 
      ...); 
+0

Это было именно то, что я так сильно искал! Я пробовал этот подход раньше, но не мог заставить его работать по какой-то причине, но теперь у меня это работает! Большое вам спасибо, это очень приятно! – user3085306

+0

Возможно, что-то вы также можете мне помочь. Как только я использовал r_sort в своем массиве, он вернулся к тому, как он действовал раньше. Любая идея, почему это может произойти? – user3085306

+1

Используйте 'arsort' для сортировки ассоциативного массива и сохранения ассоциаций ключей. – Barmar

0

Попробуйте как

$myArr = array_slice($array,0,5); 
$i = 0; 
foreach($myArr as $key => $value) { 
    $newArr['web'.$i++] = $value; 
} 
print_r($newArr); 
1

Я рекомендую использовать array_combine()

В основном вы только собираетесь настроить ваш новый массив с ключами, и передать в текущем массиве для значений, создавая тем самым новый массив с необходимыми ключами в нужном месте.

+0

После того, как вы закончите, просто отключенные массивы вам не нужно и высвободить немного памяти;) – Zarathuztra

+0

Это работало большое для меня спасибо! Я действительно искал больше подхода с ассоциативными массивами, но это тоже очень понравилось! – user3085306

+0

'array_combine' - это еще один способ создания ассоциативного массива. – Barmar

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