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

Форум PHP

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

 

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

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

тема: Создание нового массива на основе двух имеющихся
 
 автор: enshteyns   (06.07.2009 в 02:01)   письмо автору
 
 

Здравствуйте!

Есть массив:


Array
(
    [settings] => Array
        (
            [0] => Array
                (
                    [id] => 1
                    [title] => Регистрация по Email
                    [description] => После регистрации пользов
                    [type] => yesno
                    [varname] => reg_by_email
                    [value] => 1
                    [section] => test4
                    [module] => auth
                    [visible] => 1
                    [blocked] => 0
                )

            [1] => Array
                (
                    [id] => 2
                    [title] => Email отправителя
                    [description] => Email отпра
                    [type] => input
                    [varname] => auth_email_sender
                    [value] => enshteyns@gmail.com
                    [section] => test3
                    [module] => auth
                    [visible] => 1
                    [blocked] => 0
                )

            [2] => Array
                (
                    [id] => 5
                    [title] => Test 1
                    [description] => 
                    [type] => textarea
                    [varname] => test1
                    [value] => defdshbg
                    [section] => test1
                    [module] => auth
                    [visible] => 1
                    [blocked] => 0
                )

            [3] => Array
                (
                    [id] => 6
                    [title] => Test2
                    [description] => fdscvds
                    [type] => yesno
                    [varname] => test2
                    [value] => 0
                    [section] => test2
                    [module] => auth
                    [visible] => 1
                    [blocked] => 0
                )

            [4] => Array
                (
                    [id] => 7
                    [title] => gregbvre
                    [description] => bfgdbfd
                    [type] => yesno
                    [varname] => gfdbv
                    [value] => 1
                    [section] => test2
                    [module] => auth
                    [visible] => 1
                    [blocked] => 0
                )

            [5] => Array
                (
                    [id] => 8
                    [title] => gfgf
                    [description] => 123а
                    [type] => input
                    [varname] => gfdbfd
                    [value] => павпав
                    [section] => test4
                    [module] => auth
                    [visible] => 1
                    [blocked] => 0
                )

            [6] => Array
                (
                    [id] => 9
                    [title] => еще
                    [description] => 323в
                    [type] => yesno
                    [varname] => few
                    [value] => 0
                    [section] => test2
                    [module] => auth
                    [visible] => 1
                    [blocked] => 0
                )

        )

    [sections_settings] => Array
        (
            [0] => Array
                (
                    [id] => 5
                    [name] => Тест1
                    [varname] => test1
                    [mod] => auth
                    [sort] => 2
                )

            [1] => Array
                (
                    [id] => 6
                    [name] => Test2
                    [varname] => test2
                    [mod] => auth
                    [sort] => 1
                )

            [2] => Array
                (
                    [id] => 7
                    [name] => Тест3
                    [varname] => test3
                    [mod] => auth
                    [sort] => 2
                )

            [3] => Array
                (
                    [id] => 8
                    [name] => Тест4
                    [varname] => test4
                    [mod] => auth
                    [sort] => 3
                )

        )

)



Необходимо создать новый массив такого вида:


Array
(
    [varname] => Array
        (
            [0] => Array
                (
                    тут его параметры массива settings
                )
    [следующий varname] => Array
        (
            [0] => Array
                (
                    тут его параметры массива settings
                )
)


Вообщем на основе параметра varname массива sections_settings необходимо сравнить с параметром section массива settings и создать новый/

Помогите, плз. Всю голову сломал :(

  Ответить  
 
 автор: Trianon   (06.07.2009 в 02:08)   письмо автору
 
   для: enshteyns   (06.07.2009 в 02:01)
 

-

  Ответить  
 
 автор: enshteyns   (07.07.2009 в 18:09)   письмо автору
 
   для: Trianon   (06.07.2009 в 02:08)
 

? =)

  Ответить  
 
 автор: mikha   (08.07.2009 в 10:00)   письмо автору
 
   для: enshteyns   (06.07.2009 в 02:01)
 

Не совсем понятно что вам в итоге нужно.. Но да ладно..
И это.. что то мне подсказывает, что то что вам нужно, вы могли получить раньше, ещё на этапе формирования этого массива, не городя лишнего огорода.
<?php
$arr 
= array(
  
'settings' => array(
    
'0' => array(
      
'id' => 1,
      
'title' => 'Регистрация по Email',
      
'description' => 'После регистрации пользов',
      
'type' => 'yesno',
      
'varname' => 'reg_by_email',
      
'value' => 1,
      
'section' => 'test4',
      
'module' => 'auth',
      
'visible' => 1,
      
'blocked' => 0
    
),
    
'1' => array( 
      
'id' => 2,
      
'title' => 'Email отправителя',
      
'description' => 'Email отпра',
      
'type' => 'input',
      
'varname' => 'auth_email_sender',
      
'value' => 'enshteyns@gmail.com',
      
'section' => 'test3',
      
'module' => 'auth',
      
'visible' => 1,
      
'blocked' => 0
    
),
    
'2' => array(
      
'id' => 5,
      
'title' => 'Test 1',
      
'description' => ''
      
'type' => 'textarea',
      
'varname' => 'test1',
      
'value' => 'defdshbg',
      
'section' => 'test1',
      
'module' => 'auth',
      
'visible' => 1,
      
'blocked' => 0
    
),
    
'3' => array( 
      
'id' => 6,
      
'title' => 'Test2',
      
'description' => 'fdscvds',
      
'type' => 'yesno',
      
'varname' => 'test2',
      
'value' => 0,
      
'section' => 'test2',
      
'module' => 'auth',
      
'visible' => 1,
      
'blocked' => 0
    
),
    
'4' => array(
      
'id' => 7,
      
'title' => 'gregbvre',
      
'description' => 'bfgdbfd',
      
'type' => 'yesno',
      
'varname' => 'gfdbv',
      
'value' => 1,
      
'section' => 'test2',
      
'module' => 'auth',
      
'visible' => 1,
      
'blocked' => 0
    
),
    
'5' => array(
      
'id' => 8,
      
'title' => 'gfgf',
      
'description' => '123а',
      
'type' => 'input',
      
'varname' => 'gfdbfd',
      
'value' => 'павпав',
      
'section' => 'test4',
      
'module' => 'auth',
      
'visible' => 1,
      
'blocked' => 0
    
),
    
'6' => array( 
      
'id' => 9,
      
'title' => 'еще',
      
'description' => '323в',
      
'type' => 'yesno',
      
'varname' => 'few',
      
'value' => 0,
      
'section' => 'test2',
      
'module' => 'auth',
      
'visible' => 1,
      
'blocked' => 0
    
),
  ),
  
'sections_settings' => array(
    
'0' => array(
      
'id' => 5,
      
'name' => 'Тест1',
      
'varname' => 'test1',
      
'mod' => 'auth',
      
'sort' => 2
    
),
    
'1' => array( 
      
'id' => 6,
      
'name' => 'Test2',
      
'varname' => 'test2',
      
'mod' => 'auth',
      
'sort' => 1
    
),
    
'2' => array( 
      
'id' => 7,
      
'name' => 'Тест3',
      
'varname' => 'test3',
      
'mod' => 'auth',
      
'sort' => 2
    
),
    
'3' => array( 
      
'id' => 8,
      
'name' => 'Тест4',
      
'varname' => 'test4',
      
'mod' => 'auth',
      
'sort' => 3
    
)
  )
);
$arr_out = array();
foreach(
$arr['settings'] as $value){
  foreach(
$value as $key => $value2){
    
$arr_out[$value['varname']][$key] = $value2;
    
//или, т.к мне непонятно что вам в результате нужно
    //$arr_out[$value['varname']][0][$key] = $value2;
    // или
    //$arr_out[$value['varname']][0][] = $value2;
  
}
}
echo 
"<pre>"print_r($arr_out); echo "</pre>";
?>

  Ответить  
 
 автор: enshteyns   (08.07.2009 в 13:08)   письмо автору
 
   для: mikha   (08.07.2009 в 10:00)
 

Спасибо за помощь, но я уже сделал рекурсией. =)

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

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