Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Изменить ключи массива
 
 автор: Yuriev   (01.03.2012 в 23:42)   письмо автору
 
 

В разных местах скрипта присваиваем
$a[8] = 'ccc';
...
$a[1] = 'aaa';
...
$a[3] = 'bbb';
т. е. ключи могут идти не подряд и присваивание в случайной последовательности

Переименовать бы ключи, чтоб было
$a[1] == 'aaa';
$a[2] == 'bbb';
$a[3] == 'ccc';

  Ответить  
 
 автор: Valick   (02.03.2012 в 00:13)   письмо автору
 
   для: Yuriev   (01.03.2012 в 23:42)
 

http://ru.php.net/manual/ru/function.sort.php
вообще там много интересных функций ;)

  Ответить  
 
 автор: Yuriev   (02.03.2012 в 00:19)   письмо автору
 
   для: Valick   (02.03.2012 в 00:13)
 

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

  Ответить  
 
 автор: task   (02.03.2012 в 00:50)   письмо автору
 
   для: Yuriev   (02.03.2012 в 00:19)
 

А они так важны в вашем случае?
Коли уж так, то:
<?
$array 
array_values($array);

  Ответить  
 
 автор: Yuriev   (02.03.2012 в 01:08)   письмо автору
 
   для: task   (02.03.2012 в 00:50)
 

Да, далее значения массива будут обрабатываться в порядке возрастания ключа.
Этот $array = array_values($array); вариант подходит если нет менее ресурсоемкого способа.
Уж больно массив большой может быть.

  Ответить  
 
 автор: Sfinks   (02.03.2012 в 01:18)   письмо автору
 
   для: Yuriev   (02.03.2012 в 01:08)
 

Обратите внимание, что array_values изменит все ключи не по порядку, а в том порядке в котором у вас создавался массив!
Т.е. если вы создавали:
$a[8] = 'ccc';
 ...
 $a[1] = 'aaa';
 ...
 $a[3] = 'bbb';
то после array_values() будет не ваше
$a[1] == 'aaa';
 $a[2] == 'bbb';
 $a[3] == 'ccc';
а
$a[1] == 'ccc';
 $a[2] == 'aaa';
 $a[3] == 'bbb';
поэтому сперва отсортировать ключи - ksort() и только потом array_values()

  Ответить  
 
 автор: task   (02.03.2012 в 01:59)   письмо автору
 
   для: Yuriev   (02.03.2012 в 01:08)
 

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

  Ответить  
 
 автор: Sfinks   (02.03.2012 в 01:06)   письмо автору
 
   для: Yuriev   (02.03.2012 в 00:19)
 

ksort()
затем
array_values()

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования