Эта тема на forum.dklab.ru


Maus Андрей: Вывод массива
Такая проблема: имеется ассоциативный массив
$info[11] => Array
(
[123456] => 1 1159019589 1159019589 g
=> 1 1159022197 1159022197
[маня] => 1 1160076370 1160076370 g
=> 1 1160211764 1160211764
)

Делаю обход для вывода данных из него

// реверс массива
$my_info=array_reverse($info[11]);

foreach($my_info as $index => $val) {
echo "$index,";
}


Результат получается такой: amalka,маня,gizia,0
А нужно что бы было так: amalka,маня,gizia,123456

Как добиться правильной работы, т.е. то бы оно цифры поспринималот нормально в ключе?
Антон Макаренко:
array_reverse
(PHP 4, PHP 5)

array_reverse -- Возвращает массив с элементами в обратном порядке
Описание
array array_reverse ( array array [, bool preserve_keys] )


Функция array_reverse() берёт массив array и возвращает новый массив, порядок элементов в котором обратный исходному, сохраняя ключи, если параметр preserve_keys равен TRUE.


Могу предположить, что Вашу задачу можно решить альтернативным путем:
foreach (array_reverse(array_keys($info[11]['viewform']), true) as $index)
echo "$index,";
// хм.. Или же Вам надо просто через запятую вывести ключи?
echo implode(',', array_reverse(array_keys($info[11]['viewform']), true));

Пожалуйста, оформляйте код, когда задаете вопрос на форуме.
kernel32:
Как добиться правильной работы, т.е. то бы оно цифры поспринималот нормально в ключе?
$array = array_reverse($array, 1);
print_r($array);
http://ru.php.net/array_reverse/
Не надо колбаситься. Надо просто передать вторым параметром 1 или true (по крайней мере, в PHP5 все со вторым параметром, ==1, все работает).
Либо еще проще: делать все ключи строковыми:
$array = array('123456' => '1 1159019589 1159019589 g', // Здесь ключ - с виду число, а на самом деле - строка.
'gizia' => '1 1159022197 1159022197',
'маня' => '1 1160076370 1160076370 g',
'amalka' => '1 1160211764 1160211764');
print_r(array_reverse($array));

Эта тема на forum.dklab.ru