Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 31.05.2018
Сообщений: 1

Как переписать многомерный массив(матрица) с изменениями в новый массив

31.05.2018, 18:38. Показов 1307. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, есть у меня двумерный массив. Если быть точнее то это матрица
PHP
1
2
3
4
5
6
7
$maitrix = [                                                 
                     [1000, 90, 60, 50, 70], //нумерация массивов начинается с 1
                     [20, 1000, 60, 10, 30],
                     [30, 10, 1000, 20, 70],
                     [40, 50, 30, 1000, 70],
                     [90, 10, 80, 20, 1000]
                                                      ];
Никак не могу понять как сделать вычитание из каждой строки по минимальному значению этой же строки (кроме 1000), чтобы было примерно такое:
PHP
1
2
3
4
5
6
7
$maitrix = [
                    [1000, 40, 10, 0, 20],
                    [10, 1000, 50, 0, 20],
                    [10, 0, 1000, 10, 60],
                    [10, 20, 0, 1000, 40],
                    [80, 0, 70, 10, 1000]
                                                       ];
Фантазии хватило только на такое
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$matrix1 = []
                          foreach($matrix as $key=>$tr){
                              foreach($tr as $key1=>$td){
                                   $td = (int)$td;     
 
                                     if ($td == 1000){
                                         array_push($matrix1, $td);    //здесь типа записываем в новый массив 1000 без изменений
                                     }
                                       elseif ($td < 1000) {
                                            $min [] = $td - min($tr);   
                                                  array_push($matrix1, $min);         //а тут уже от остальных чисел отнимаем и записываем  
             
                                                      }
                                             }
                                                                       
                                                                    
                                    }
Получается какая та фигня, да еще не пойму как старые значения в массиве переписать на новые, да еще чтобы осталась старая нумерация.
Пожалуйста подскажите как такое можно реализовать
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.05.2018, 18:38
Ответы с готовыми решениями:

Как преобразовать массив создав новый из старого с изменениями?!
Дан массив размера N. Преобразовать его, вставив после каждого положительного числа нулевой элемент.#include &lt;stdio.h&gt; #include...

Многомерный массив (матрица) на С++
Матрица K(m,m) состоит из нулей и единиц. Найти в ней номера строк и столбцов, не содержащих единицы, либо сообщить, что таких нет.

Многомерный массив (матрица)
Помогите пожалуйста решить такую задачку: задана квадратная матрица, нужно составить два вектора: первый состоит из максимальных...

2
 Аватар для tarasalk
1992 / 1216 / 440
Регистрация: 13.06.2013
Сообщений: 4,115
31.05.2018, 19:55
Указанный массив начинается с 0, хз откуда у вас 1. В любом случае никто не мешает скопировать массив и менять только значения.
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$matrix = [                                                 
    [1000, 90, 60, 50, 70],
    [20, 1000, 60, 10, 30],
    [30, 10, 1000, 20, 70],
    [40, 50, 30, 1000, 70],
    [90, 10, 80, 20, 1000]
];
 
$matrix1 = $matrix;
 
foreach($matrix1 as &$row) {
    $min = min($row);
    
    foreach($row as &$value) {
        if ($value != 1000){
            $value -= $min;
        }
    }                                                         
}
 
print_r($matrix1);
0
0 / 0 / 1
Регистрация: 31.05.2018
Сообщений: 1
31.05.2018, 23:22
спасибо за помощь.

Добавлено через 3 минуты
спасибо за помощь.
PHP
1
2
3
4
5
6
7
$maitrix = [                                                 
                     [1000, 90, 60, 50, 70], //нумерация массивов начинается с 1
                     [20, 1000, 60, 10, 30],
                     [30, 10, 1000, 20, 70],
                     [40, 50, 30, 1000, 70],
                     [90, 10, 80, 20, 1000]
                                                      ];
Тут массив приходит из $_POST запроса. Специально сделал чтобы с 1 начиналось.

А как можно записывать с нужной нумерации ?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
31.05.2018, 23:22
Помогаю со студенческими работами здесь

Массив: Переписать в новый массив В все элементы из А, которые больше С.
Товарищи, нужна помощь с задачей: Задан массив А из n элементов и вещественное число с. Переписать в новый массив В все элементы из А,...

Удвоить элементы с четными номерами и переписать их в новый массив. Полученный массив отсортировать
4.Задача. Ввести с клавиатуры размерность и значения элементов линейного массива целых чисел. Удвоить элементы с четными номерами и...

Дан массив A(23). Переписать в новый массив все элементы, расположенные после последнего отрицательного.
Задача Дан массив A(23). Переписать в новый массив все элементы, расположенные после последнего отрицательного. В новом массиве...

Массив: Элементы, находящиеся после максимального, переписать в новый массив В, если это возможно.
Ввести массив А. Элементы, находящиеся после максимального, переписать в новый массив В, если это возможно. Массив В отпечатать. Если...

Дана квадратная матрица A[N,N]. (Многомерный массив)
Дана квадратная матрица A. Записать на место отрицательных элементов матрицы нули, а на место положительных –единицы. Вывести на печать...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru