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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Обработка массива 
V
    Опции темы
MoLeX
  Дата 25.6.2010, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Местный пингвин
****


Профиль
Группа: Модератор
Сообщений: 4076
Регистрация: 17.5.2007

Репутация: 46
Всего: 140



Добрый день.

Что-то мозга не хочет родить идею по поводу обработке массива

Есть следующий массив:
Код

$array[] = array('region'   => 1,    'region_n' => 'Регион 1',
                 'city'     => 1,    'city_n'   => 'Город 1',
                 'street'   => 1,    'street_n' => 'Улица 1',
                 'drygoe'   => null, 'drygoe_n' => null);

$array[] = array('region'   => 1,    'region_n' => 'Регион 1',
                 'city'     => 1,    'city_n'   => 'Город 1',
                 'street'   => 1,    'street_n' => 'Улица 2',
                 'drygoe'   => null, 'drygoe_n' => null);
                 
$array[] = array('region'   => 2,    'region_n' => 'Регион 2',
                 'city'     => 3,    'city_n'   => 'Город 3',
                 'street'   => 5,    'street_n' => 'Улица 5',
                 'drygoe'   => 2,    'drygoe_n' => 'Значение 2');
                 
$array[] = array('region'   => 1,    'region_n' => 'Регион 1',
                 'city'     => 1,    'city_n'   => 'Город 1',
                 'street'   => null, 'street_n' => null,
                 'drygoe'   => 7,    'drygoe_n' => 'Значение 1');



а нужно получить такой
Код

$array[0] = array('Регион 1, Город 1', null);
$array[1] = array(null, 'Улица 1');
$array[2] = array(null, 'Улица 2');
$array[3] = array(null, 'Значение 1');

$array[4] = array(null, null);

$array[5] = array('Регион 2, Город 3', null);
$array[6] = array(null, 'Улица 5 (Значение 2)');


Это сообщение отредактировал(а) MoLeX - 25.6.2010, 13:11


--------------------
Amazing  smile 
PM MAIL WWW ICQ   Вверх
CruorVult
Дата 25.6.2010, 13:22 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



вначале сформируй :
Код

array("Регион 1" => array("Город 1"=>array("Улица 1","Улица 2",...),...), ...) 
 

а попом пройдись по нему и запишы все в одномерный массив.
PM MAIL Skype   Вверх
bars80080
Дата 25.6.2010, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прапор творюет
****
Награды: 1



Профиль
Группа: Завсегдатай
Сообщений: 12022
Регистрация: 5.12.2007
Где: Königsberg

Репутация: 71
Всего: 315



что-то не понятна систематика, как элементы располагаются во втором массиве
PM MAIL WWW   Вверх
CruorVult
Дата 25.6.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 868
Регистрация: 24.9.2008
Где: г.Киев, Украина

Репутация: 9
Всего: 28



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

Код

$new = array();                 
foreach($array as $v){
    if(!$new[$v['region']])  
        $new[$v['region']] = array('name'=>$v['region_n'], 'c'=>array());     
    if(!$new[$v['region']]['c'][$v['city']]) 
        $new[$v['region']]['c'][$v['city']] = array('name'=>$v['city_n'], 'c'=>array());         
    
    if($v['street']!=null && $v['drygoe']!=null)
        $st = $v['street_n']." (".$v['drygoe_n'].")";
    else
        $st = ($v['street_n']==null)? $v['drygoe_n'] : $v['street_n'];
     
    $new[$v['region']]['c'][$v['city']]['c'][] = $st;            
    

}    
$final = array();
foreach($new as $v) {
    foreach($v['c'] as $v1) {
        $final[] = array($v['name'],$v1['name'],'null');
        foreach($v1['c'] as $v2) {
            $final[] = array('null',$v2);            
        }
    }
}    



У тебя тут по-моему ошибка, или так и должно быть:

..........

$array[] = array('region'   => 1,    'region_n' => 'Регион 1',
                 'city'     => 1,    'city_n'   => 'Город 1',
                 'street'   => 2,    'street_n' => 'Улица 2',
                 'drygoe'   => null, 'drygoe_n' => null);
                 
................


Это сообщение отредактировал(а) CruorVult - 25.6.2010, 15:40
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "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.0493 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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