За последние 24 часа нас посетил 18231 программист и 1598 роботов. Сейчас ищут 888 программистов ...

Обращение к многомерному массиву

Тема в разделе "Прочие вопросы по PHP", создана пользователем wano525, 22 ноя 2013.

  1. wano525

    wano525 Новичок

    С нами с:
    22 ноя 2013
    Сообщения:
    5
    Симпатии:
    0
    Доброго времени суток, великие гуру вселенной php. Есть у меня незамысловатый код, который записывает данные из базы данных в виде обратносимметричной матрицы. Количество данных постоянно будет пополняться, поэтому число матриц будет увеличиваться. Для дальнейшей работы с матрицами, которые у меня записаны в виде массивов, я записываю их в один большой массив $g. А теперь, уважаемые знатоки, вопрос: есть ли возможность обратиться к значениям каждого массива внутри большого?

    Код (Text):
    1. $g = array();          
    2. do
    3.  
    4. {
    5. echo "Респондент № - ".$myrow['id']."<br>";
    6. /*матрица сосп*/
    7. $g = array(
    8.            array(
    9.            array(1, $myrow['sj_sm_sosp'], $myrow['sj_rm_sosp']),
    10.            array(round(1 / $myrow['sj_sm_sosp'],2), 1, $myrow['sm_rm_sosp']),
    11.            array(round(1 / $myrow['sj_rm_sosp'],2), round(1 / $myrow['sm_rm_sosp'],2), 1)
    12.            ),
    13.            array(
    14.            array(1, $myrow['sj_sm_ek'], $myrow['sj_rm_ek']),
    15.            array(round(1 / $myrow['sj_sm_ek'],2), 1, $myrow['sm_rm_ek']),
    16.            array(round(1 / $myrow['sj_rm_ek'],2), round(1 / $myrow['sm_rm_ek'],2), 1)
    17.            ),
    18.            
    19.            array(
    20.            array(1, $myrow['sj_sm_ia'], $myrow['sj_rm_ia']),
    21.            array(round(1 / $myrow['sj_sm_ia'],2), 1, $myrow['sm_rm_ia']),
    22.            array(round(1 / $myrow['sj_rm_ia'],2), round(1 / $myrow['sm_rm_ia'],2), 1)
    23.            ),
    24.            array(
    25.            array(1, $myrow['sosp_ia'], $myrow['sosp_ek']),
    26.            array(round(1 / $myrow['sosp_ia'],2), 1, $myrow['ek_ia']),
    27.            array(round(1 / $myrow['sosp_ek'],2), round(1 / $myrow['ek_ia'],2), 1)
    28.            )
    29.             );
    30.  
    31.  
    32. echo $g[0][0]." ".$g[0][1]." ".$g[0][2]."<br>";
    33. echo $g[1][0]." ".$g[1][1]." ".$g[1][2]."<br>";
    34. echo $g[2][0]." ".$g[2][1]." ".$g[2][2]."<br>"."<br>";
    35.  
    36. }
    37.  
    38. while ($myrow = mysql_fetch_array($result));
     
  2. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    у попова учитесь?
    $g[0][1] - обращение к массиву внутри массива
     
  3. wano525

    wano525 Новичок

    С нами с:
    22 ноя 2013
    Сообщения:
    5
    Симпатии:
    0
    Не петросяньте. Это обращение к массиву внутри массива $g. мне нужны элементы внутренних массивов
     
  4. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    $g[key]...[key]?
     
  5. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    madhouse =)
     
  6. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    надо ролик записать про это
     
  7. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Вам не кажется, что сами ответили на свой вопрос? Каждый [индекс] означает погружение еще на одну ступень вложенности.

    [​IMG]
     
  8. wano525

    wano525 Новичок

    С нами с:
    22 ноя 2013
    Сообщения:
    5
    Симпатии:
    0
    то есть, количество ключей, которое можно указать, неограниченно? можно указать $g[0][0][0]?
     
  9. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    угу

    вернемся к попову. вы у него такую конструкцию do...while подцепили?
     
  10. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    лучший ограничитель тут - здравый смысл.
     
  11. wano525

    wano525 Новичок

    С нами с:
    22 ноя 2013
    Сообщения:
    5
    Симпатии:
    0
    да

    Добавлено спустя 57 секунд:
    что ж, благодарю)
     
  12. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Зря.. Отцепляйте обратно.
     
  13. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Код (Text):
    1. $array = array();
    2. $link = &$array;
    3. $deep = 196000;
    4. for($i = 0; $i<$deep; $i++) {
    5.   $link = array('value');
    6.   $link = &$link[0];
    7. }
    8. $e = 'echo $array'.str_repeat('[0]', $deep).';';
    9. eval($e);
    10. echo $e;
    где-то на 196000 онлайн песочница отказалась работать )
     
  14. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
  15. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    romach, вы уверены, что вы не написали <матное слово>?
    Попов, вас тоже научил?)
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    попов это очень плохо. не занимайтесь по его урокам, это всегда плохо кончается.
     
  17. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Уверен, что написал именно его, матное слово, но оно таки создает массив с заданной глубиной.

    з.ы. а мне нравится попов, у него форум веселый. Я его иногда почитываю вместа баша )
     
  18. wano525

    wano525 Новичок

    С нами с:
    22 ноя 2013
    Сообщения:
    5
    Симпатии:
    0
    Чем же он так плох?)
     
  19. Fell-x27

    Fell-x27 Суперстар
    Команда форума Модератор

    С нами с:
    25 июл 2013
    Сообщения:
    12.156
    Симпатии:
    1.771
    Адрес:
    :сердА
    Херню проповедует.
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    он плохо понимает то, чем пытается заниматься.
    конструкцию do...while на обработке ответа базы данных кроме него не использует никто, потому, что она порождает ошибку.