За последние 24 часа нас посетил 60651 программист и 1743 робота. Сейчас ищут 909 программистов ...

массивы

Тема в разделе "PHP для новичков", создана пользователем Verbal, 9 мар 2012.

  1. Verbal

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

    С нами с:
    17 дек 2011
    Сообщения:
    207
    Симпатии:
    0
    помогите пожалуйста нужно сделать программу что бы считал симплекс методом (что такое симплекс метод можно не вникать), и такая проблемка как сделать массив что бы он создавался по n-количество столбцов g-количество строк (буквы могут быть любые) и что бы с каждым элементом масива можно было производить математические действия, просто не одного нормального урока не нашел, если можно то расскажите как это сделать или можно сылку где показано как работать с такими массивами.
     
  2. Крыс

    Крыс Активный пользователь

    С нами с:
    3 фев 2012
    Сообщения:
    449
    Симпатии:
    0
  3. Verbal

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

    С нами с:
    17 дек 2011
    Сообщения:
    207
    Симпатии:
    0
    несовсем то это уже ф-ии работы с масивом а мне нужна помошь в создание массива, что бы создавался по двум цифрам и можно было обрабатывать каждый элемент.
     
  4. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Код (PHP):
    1. <?php
    2. // Число строк и колонок
    3. $rows = 7;
    4. $cols = 5;
    5. // Создаём массив
    6. $arr = array();
    7. for($i = 0; $i < $rows; ++$i)
    8.     $arr[$i] = array_fill(0, $cols, 0);
    9.  
    10. // Проверяем, что получилось
    11. header('Content-type: text/plain');
    12. print_r($arr);
    13.  
    14. // Работа с массивом - установим значение элемента в 5-й строке
    15. // 3-й колонке в "Привет, мир!"
    16. $arr[4][2] = 'Привет, Мир!';
    17. // Цифры на 1 меньше - так как индексация начинается с нуля, т.е.
    18. // первая строка имеет индекс 0, как и первая колонка
    19. // Теперь отобразим значение элемента 5-й строки 3-й колонки
    20. echo($arr[4][2]);
    21. ?>
     
  5. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    два цикла, один в другом, создают как раз двумерный массив обычно.
     
  6. Verbal

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

    С нами с:
    17 дек 2011
    Сообщения:
    207
    Симпатии:
    0
    можете пожалуйста написать как должны выглядить цикл в цикле для заполнения и вывода массива буду безмерно благодарен
     
  7. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Код (PHP):
    1. for($i = 0; $i < 10; $i++) {
    2.   for($j = 0; $j < 10; $j++) {
    3.     $array[$i][$j] = 'чему-нибудь';
    4.   }
    5. }
    6.  
     
  8. AndreJM

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

    С нами с:
    25 янв 2012
    Сообщения:
    522
    Симпатии:
    0
    Код (PHP):
    1. foreach (range(0, 10) as $i) 
    2.     foreach (range(0, 10) as $j)
    3.         $array[$i][$j] = 'чему-нибудь';
    4.  
     
  9. Verbal

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

    С нами с:
    17 дек 2011
    Сообщения:
    207
    Симпатии:
    0
    Код (Text):
    1. for($i = 1; $i < $rows; ++$i) {
    2.        
    3.         for($j = 1; $j < $cols; ++$j)
    4.         {
    5.              $array[$i][$j] = $array[$i][$j]+'значения';
    6.         }
    7.        
    8.        
    9.     };
    можете сказать как правильно вот такое присвоить что бы когда надо значения заменялось, просто так не обрабатывает что именно тут не так.
     
  10. Ganzal

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

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    ну не так что индекс от внешнего массива не существует в момент итерации от вложенного
     
  11. Verbal

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

    С нами с:
    17 дек 2011
    Сообщения:
    207
    Симпатии:
    0
    а как тогда правильно сделать?

    Добавлено спустя 2 минуты 22 секунды:
    вот полный код, все работает ток операция сложения не работает
    Код (PHP):
    1. // Создаём массив
    2.     for($i = 1; $i < $rows; ++$i) {echo"<tr>";
    3.         
    4.         for($j = 1; $j < $cols; ++$j) 
    5.         {
    6.             // Здесь присваивается значение очередному элементу массива
    7.             // с номером строки i и номером столбца j, отсчёт с нуля.
    8.             echo "<td>a$i$j<input type='text' size='3' maxlength='3' name='".$i.$j."' /></td>" ;
    9.         };
    10.         
    11.         echo"</tr>";
    12.     };
    13.  
    14.     echo "</table><br />";
    15.     //\\
    16.  
    17.     echo "Когда Вы заполните матрицу, нажмите 'Продолжить', чтобы увидеть решение задачи. <input type='submit' name='submit' value='Продолжить' />";
    18.     echo "<input type='hidden' name='rows' value='".$_POST['rows']."' />
    19.     <input type='hidden' name='cols' value='".$_POST['cols']."' />
    20.     </form>";
    21.  
    22.  
    23.     
    24.     
    25.     
    26.     
    27.     
    28.     
    29.     //вывод массива
    30.     echo "<table border='1'><tr>";
    31.  
    32.     for($i = 1; $i < $rows; ++$i) {echo"<tr>";
    33.         
    34.         for($j = 1; $j < $cols; ++$j) 
    35.         {
    36.             // Здесь присваивается значение очередному элементу массива
    37.             // с номером строки i и номером столбца j, отсчёт с нуля.
    38.            echo "<td align='center'>".$_POST[$i.$j]."</td>";
    39.         };
    40.         
    41.         echo"</tr>";
    42.     };
    43.  
    44.     echo "</table><br />";
    45.     
    46.     //прибавялем единицу
    47.     echo "<table border='1'><tr>";
    48.  
    49.     for($i = 1; $i < $rows; ++$i) {echo"<tr>";
    50.         
    51.         for($j = 1; $j < $cols; ++$j) 
    52.         {
    53.              $array[$i][$j] = $array[$i][$j]+1;
    54.         };
    55.         
    56.         echo"</tr>";
    57.     };
    58.  
    59.     echo "</table><br />";
    60.     //вывод массива
    61.     echo "<table border='1'><tr>";
    62.  
    63.     for($i = 1; $i < $rows; ++$i) {echo"<tr>";
    64.         
    65.         for($j = 1; $j < $cols; ++$j) 
    66.         {
    67.             // Здесь присваивается значение очередному элементу массива
    68.             // с номером строки i и номером столбца j, отсчёт с нуля.
    69.            echo "<td align='center'>".$_POST[$i.$j]."</td>";
    70.         };
    71.         
    72.         echo"</tr>";
    73.     };
    74.  
    75.     echo "</table><br />"; 
     
  12. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    =) сложения чего с чем?
     
  13. Verbal

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

    С нами с:
    17 дек 2011
    Сообщения:
    207
    Симпатии:
    0
    вообщем выполнения арефмитических рассчетов, то есть есть двух мерный массив и там надо то которое число есть либо прибавить либо ещё какое-то действие совершить, как вот присвоить такое
    Код (Text):
    1.  for($i = 1; $i < $rows; ++$i) {echo"<tr>";
    2.        
    3.         for($j = 1; $j < $cols; ++$j)
    4.         {
    5.              $array[$i][$j] = $array[$i][$j]+1;
    6.         };
    7.        
    8.         echo"</tr>";
    9.     };
    ну это просто где должно быть вот как должно быть правильно?
     
  14. igordata

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

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    echo"</tr>"; - это тут ни к селу ни к городу.

    если ты хочешь получить +1, то достаточно двух циклов. только не понятно все равно. пока ты пытаешься забить массив единицами весь.