За последние 24 часа нас посетили 16976 программистов и 1699 роботов. Сейчас ищут 942 программиста ...

Двумерный ассоциативный массив(задача)

Тема в разделе "PHP для новичков", создана пользователем Rumato, 28 авг 2011.

  1. Rumato

    Rumato Активный пользователь

    С нами с:
    26 дек 2010
    Сообщения:
    77
    Симпатии:
    0
    Мне задали задачу, не подумайте, что решил за чей-то счёт её решить здесь, просто не пойму как и что решать и прошу просто немного объяснить. Ну вот: есть двумерный ассоциативный массив, есть два других массива, первые содержит ключи первого уровня двумерного массива, второй массив содержит ключи второго уровня двумерного массива. нужно как-бы обойти исходный двумерный массив, используя вторые одномерные. Поясните, это как?

    Заранее спасибо за помощь!)
     
  2. krow7

    krow7 Активный пользователь

    С нами с:
    12 авг 2009
    Сообщения:
    398
    Симпатии:
    0
    Адрес:
    из Азии
    PHP:
    1. <?php
    2. // $array2dim - 2мерный массив
    3. // $array_first - ключи первого уровня
    4. // $array_second - ключи второго уровня
    5. foreach($array_first as $first_key)
    6. {
    7.     foreach($array_second as $sec_key)
    8.     {
    9.            // $array2dim[$first_key][$sec_key] элемент двухмерного массива с ключами из заданных массивов
    10.     }
    11. }
    12.  
    если я верно все понял.
     
  3. Rumato

    Rumato Активный пользователь

    С нами с:
    26 дек 2010
    Сообщения:
    77
    Симпатии:
    0
    krow7, спасибо, сделал так:
    Код (Text):
    1.  
    2. <?php
    3.  
    4. $mens = array(
    5.     'id' => array(
    6.         'servise'   => 'mts',
    7.         'params'    => 'mobile',
    8.         'workc'     => 'good'
    9.                      ),
    10.    'id2' => array(
    11.         'param1'    => '1',
    12.         'param2'    => '2',
    13.         'param3'    => '3'
    14.                       ),
    15.     );
    16.    
    17. $array_first = array('id', 'id2');
    18. $array_second = array('servise', 'params', 'workc', 'param1', 'param2', 'param3');
    19.  
    20. $len_fist = count($array_first);
    21. $len_second = count($array_second);
    22.    
    23. for($i = 0; $i < $len_fist; $i++) {
    24.    
    25.     for($j = 0; $j < $len_second; $j++) {
    26.         if(isset($mens[$array_first[$i]][$array_second[$j]])){
    27.             echo $mens[$array_first[$i]][$array_second[$j]] ."<br />";
    28.        
    29.         }
    30.     }
    31.  
    32. }
    33.