За последние 24 часа нас посетили 22339 программистов и 1100 роботов. Сейчас ищут 667 программистов ...

Работа с матрицей

Тема в разделе "PHP для новичков", создана пользователем Dayken, 10 окт 2020.

  1. Dayken

    Dayken Новичок

    С нами с:
    4 окт 2020
    Сообщения:
    23
    Симпатии:
    0
    Ребят, привет. Нужна помощь...Как сделать рандомную матрицу я понимаю. Но не могу додуматься, как
    ее вывести красиво. Вот вам пример, как у меня выводится матрица 5 на 5:
    upload_2020-10-10_14-31-36.png
    Хотелось бы чтобы каждая строка соответствовала своему номеру. Вот просто не пойму как это сделать.
    И кончено же мой код:

    Код (Text):
    1. for($i=0;$i<$length;++$i)
    2. {
    3.         for($j=0;$j<$length2;++$j)
    4. {
    5.             $arr[$i][$j]=rand($minus,$plus);
    6.             echo $arr[$i][$j].', ';
    7.         }
    8.     }
    9.    
    Большое спасибо, тому кто откликнется!:3
    А пока пойду сам пытаться чего нибудь наколдовать)))
     
  2. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    В виде таблицы.
    А где там матрица 5x5?
     
    Dayken нравится это.
  3. Dayken

    Dayken Новичок

    С нами с:
    4 окт 2020
    Сообщения:
    23
    Симпатии:
    0
    Я ввожу данные с текстбоксов)
    --- Добавлено ---
    Т.е мне нужно сначала циклами построить таблицу, а потом засунуть в нужные мне ячейки элементы этого массива?
     
  4. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Если количество ячеек фиксированное, то можно и так.
    Как правило имеется в виду двумерный массив. Приведите пример если нужна помощь.
    Для его преобразования в таблицу удобно пользоваться, например sprintf()
     
    Dayken нравится это.
  5. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Достаточно лишь в конце каждой строки добавить символ её перевода.
    Для html, соответственно - разделитель строк (см. там-же).
     
    Dayken нравится это.
  6. Dayken

    Dayken Новичок

    С нами с:
    4 окт 2020
    Сообщения:
    23
    Симпатии:
    0
    Дак а как это сделать если я вывожу по 1 элементу с помощью цикла.
    --- Добавлено ---
    Я сделал форму в которой есть размер двумерного массива и его диапазон.
    Для примера:
    upload_2020-10-10_23-45-52.png
    И скриптом выше сделал,чтобы создавался двумерный массив из полученных данных. И не могу понять как это более красиво и удобно оформить.
    Вот вам пример, если верхние текстбоксы я заполню 5, а нижние от -10 до 10.То получу что-то такое:
    upload_2020-10-10_23-48-19.png
    Не очень презентабельно выглядит. Возможно скрипт, что я приводил выше не подходит для того, что я хочу получить.
    Если можете и вам будет не сложно, хотел бы посмотреть как бы вы реализовали это. Я новичок в php и многого не знаю. Поэтому разбираю все базовые нюансы. Буду рад любой помощи) Заранее спасибо! Вы ко мне постоянно на помощь приходите:D То что было в тот раз я завершил, спасибо вам еще раз)
     

    Вложения:

  7. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    С помощью вложенных циклов.
    Первый (внешний) - считает строки, второй (внутренний) - столбцы.
     
    Dayken нравится это.
  8. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    PHP:
    1. <?php
    2.  
    3. $arr = array(
    4. array(1,2,3,4,5),
    5. array(5,4,3,2,1),
    6. array(6,7,8,9,0),
    7. array(0,9,8,7,6),
    8. array(1,3,5,7,9)
    9. );
    10.  
    11. echo '<table border=1 cellspacing=4 cellpadding=0>'.PHP_EOL; // PHP_EOL - символ перевода строки
    12.  
    13. foreach($arr as $value)
    14. {
    15.   echo '<tr>'.PHP_EOL;
    16.    foreach($value as $e)
    17.     {
    18.      echo '<td>'.PHP_EOL.$e.'</td>'.PHP_EOL;
    19.      }
    20.   echo '</tr>'.PHP_EOL;
    21. }
    22.  
    23. echo '</table>'.PHP_EOL;
    24.  
    25. ?>
     
    Dayken нравится это.
  9. Dayken

    Dayken Новичок

    С нами с:
    4 окт 2020
    Сообщения:
    23
    Симпатии:
    0
    Да, действительно..я об этом же утром подумал, как проснулся. Зашел сюда и вижу вы тоже это написали) Но оно дает не совсем нужный вид.
    Метод с таблицей ровнее все ставит..Но на будущее для себя пояснил,спасибо.Все работает.
    --- Добавлено ---
    Огромное, спасибо. Сейчас же сяду разбирать каждую строчку этого кода. Все работает отлично. Выводит прям как надо.!) Про PHP_EOL не знал, пользовался вечно тегами. Познавательно!
     
  10. Sail

    Sail Старожил

    С нами с:
    1 ноя 2016
    Сообщения:
    1.591
    Симпатии:
    360
    Эта константа актуальна при выводе в файл, но не в браузер :)
     
  11. Dayken

    Dayken Новичок

    С нами с:
    4 окт 2020
    Сообщения:
    23
    Симпатии:
    0
    Буду знать :D Заменю тогда старым добрым <br>. Хотя вроде все работает. Может это лишние.
    Хотя наверно лучше сразу учиться делать заведомо правильнее.
    --- Добавлено ---
    От этого все улетело вниз, теперь интересно почему?:D
    upload_2020-10-11_15-20-33.png
    Оно внизу:D
    --- Добавлено ---
    А вот "\n" работает отлично. Странно.
     
  12. Drunkenmunky

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

    С нами с:
    12 авг 2020
    Сообщения:
    1.476
    Симпатии:
    281
    Уважаемый Sail хочет сказать, что между символами и тегами есть некоторая разница.