Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Рекурсивный обход массива.. с применением функции к каждому элементу 
V
    Опции темы
Resident
  Дата 25.8.2008, 03:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 25.9.2006

Репутация: нет
Всего: 0



Доброго времени суток! Возникла передо мной следующая задача:

Нужна функция рекурсивного обхода массива и применения функции к каждому элементу массива, если он не является массивом. Т.е. если проще, то нужно перекодировать все данные в массиве из одно кодировки в другую. Массив может быть как одномерный так и многомерный. С одномерным все понятно, но как поступить с многомерным массивом?
PM   Вверх
Resident
  Дата 25.8.2008, 04:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 75
Регистрация: 25.9.2006

Репутация: нет
Всего: 0



Сам буквально через несколько минут всетаки справился со своей задачей. Все на самом деле оказалось очень просто:

Код

function iconv_array($inCharset, $outCharset, $inArray) {
    if ( empty($inArray) || !is_array($inArray) ) {
        return false;
    }
    
    $outArray = array();
    
    foreach ( $inArray as $key => $value ) {
        if ( is_array($value) ) {
          $outArray[$key] = iconv_array($inCharset, $outCharset, $value);
        } else {
            $outArray[$key] = iconv($inCharset, $outCharset, $value);
        }
    }
    
    return $outArray;
}

PM   Вверх
krundetz
Дата 25.8.2008, 08:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Вечный странник
***


Профиль
Группа: Завсегдатай
Сообщений: 1400
Регистрация: 14.6.2007
Где: НН(Сормово)

Репутация: 20
Всего: 69



Resident, в PHP существует такая вещь как RecursiveIteratorIterator как раз предназначена для рекурсивного обхода коллекций элементов, каковой может выступать и многомерный массив.


--------------------
!цензоры - Хранитель стратегической жидкости
Группа ТГВ
Группа Нижний Новгород
user posted image
PM MAIL   Вверх
skyboy
Дата 25.8.2008, 09:23 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 75
Всего: 260



именно для выполнения подобного рода задач и предназначена функция array_walk_recursive
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1394 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.