Вопросы с тегами [multidimensional-array]

1

голосов
2

ответ
24

Просмотры

Нажмите ввод в подэкранном элемент PHP

У меня есть массив $ final_arr ... который дает ниже выходной, то я объединить сборы и создать новый массив. Array ([0] => Array ([составитель] => Wayne [ниша] => Строительство [плата] => 30) [1] => Array ([составитель] => Josh [ниша] => Строительство [плата] => 30) [2] => Array ([инициатор] => Вейн [ниша] => Строительство [плата] => 50) [3] => Array ([инициатор] => Джош [ниша] => Строительство [ плата] => 70)) Я слил их с помощью этого кода: $ final_arr = Array (); Еогеасп ($ formEntries как $ значения) {если (Исеть ($ final_arr [$ значение [ 'возбудитель']])) {$ final_arr [$ значение [» Возбудитель ']] [' fee_potential '] + = $ значение [' fee_potential ']; } Еще {$ final_arr [$ значение [ 'возбудитель']] = $ значение; $ Data_orgin [] = $ значение [ 'возбудитель']; }}, Которая дает мне ниже вывода, когда я print_r (final_arr $), так что теперь сборы общие и массив меньше, чем раньше. Array ([Wayne] => Array ([составитель] => Wayne [запись => Строительство [плата] => 80) [Josh] => Array ([составитель] => Josh [ниша] => Строительство [плата] = > 100)) Теперь я хочу, чтобы подтолкнуть заходы как это в субэлементе, но он не работает прекрасный .: Array ([уэйн] => Array ([составитель] => Wayne [ниша] => Строительство [плата] =>
Vishal
1

голосов
3

ответ
214

Просмотры

Java 3 dimensional data structure

I'm looking for a way to store a list of six strings that contain any number of Sting-Double key-value pairs. For example The six string list would be: ["Joy","anger","Sadness","Surprise","Disgust","Fear"]. The list item "Happy" would then have a list of pairs: , , etc. Any help is much appreciated. I've tried Map> but can't seem to get it right. This is my exhaustive list MutualInformation::findRelatedWords - scanning for similarwords.... anger, angry anger, irrate anger, stupid anger, annoy anger, frustrate disgust, disgust disgust, dislike disgust, hate disgust, sick disgust, ill fear, fear fear, afraid fear, frighten fear, scare fear, terrify joy, happiness joy, glad joy, joy joy, good joy, love joy, like sadness, sad sadness, hurt sadness, sorrow sadness, cry sadness, bad surprise, surprise surprise, amazing surprise, astonish surprise, incredible surprise, wonder and this is the output of the Mapped object. As you can see, it's only saving the last item. [{anger=[frustrate], disgust=[ill], fear=[terrify], joy=[like], sadness=[bad], surprise=[wonder]}] The partial code is as follows: Map relatedWords = new TreeMap(); while (rs.next()) { // assign the results to variables, standardising case as we go String rs_emotion = rs.getString("emotion").toLowerCase(); String rs_word = rs.getString("word").toLowerCase(); System.out.println("\t\t" + rs_emotion + ", " + rs_word); relatedWords.put(rs_emotion, Collections.singletonList(rs_word)); }
KirstieBallance
1

голосов
1

ответ
19

Просмотры

Индекс trasformation массива в стоимостном выражении

Обратно Пример значения: массив [1] = 1 массив [5] = 5 массив [12] = [1, 2] массив [85] = [8, 5] массив [7453] = [7, 4, 5, 3] массив [8987556322415] = [8, 9, 8, 7, 5, 5, 6, 3, 2, 2, 4, 1, 5], который является лучшим способом для преобразования индекса в массив с одним десятичным значением (только один номер для каждого индекса массива) вар = [30]; Функция GETVAL (массив) {для (я = 0; я массив [1] = 0 -> массив [0] = 3
ROth
1

голосов
0

ответ
38

Просмотры

Как использовать многомерный с помощью INSERT QUERY

У меня есть один мульти двумерный массив. с помощью этого я должен написать вставки запроса. Я новичок в веб-разработки. Как написать многомерный массив с помощью INSERT ЗАПРОСА date_default_timezone_set ( «UTC»); $ Start_date = "2018-01-01"; $ Start_time = "01:30 PM"; $ Due_date = "2018-01-03"; $ Due_time = "11:30 AM"; $ Проект = "10001"; $ Assign_to = "G2E0357"; // сделать начальную дату в секундах $ ех = взрываются ( '-', $ start_date); $ = Начать указываете ей (0,0,0, $ ех [1], $ ех [2], $ ех [0]); // сделать дату окончания в секундах $ ех = взрываются ( '-', $ due_date); $ = Конец указываете ей (0,0,0, $ ех [1], $ ех [2], $ ех [0]); $ ProductsArray = массив (); $ Счетчик = 0; в то время как ($ $ начать данные) {$ key1 = $ информация [ 't_assign_to']; $ Key2 = $ информация [ 't_project']; $ Ключ3 = $ информация [ 'allocated_day']; $ Project_name [$ key1] [$ key2] [$ ключ3] = $ информация [ 't_start_time'] .'-»[t_end_time '] $ информация.'; } $ Office_start = compute_am_pm_time ( "9:30 AM"); $ Office_end = compute_am_pm_time ( "7:30 PM"); Еогеасп ($ project_name в $ назначьте => $ информации о) {Еогеасп ($ информации как $ t_proj => $ даты) {$ дни = array_keys ($ даты); // получить первый и последний период: $ = первый сброс ($ дней); // 2018-01-01 2018-01-25 2018-01-18 $ последняя = конец ($ дней); // удалить первый и последний период $ first_time = array_shift ($ даты); $ Last_time = array_pop ($ даты); // создать новый массив: $ per_assign = []; // получить первую дату $ начать = SUBSTR ($ first_time, 0, StrPos ($ first_time, '-')); $ Begin_tm = compute_am_pm_time ($ начинаются); $ Per_assign [$ первый] = compute_duration ($ office_end, $ begin_tm). ' Ч; // получить статические 10hrs (но может быть вычислен) Еогеасп ($ даты как $ дня => $ время) {$ per_assign [$ дня] = '10 ч; } // получить последнюю дату $ конец = SUBSTR ($ last_time, StrPos ($ last_time, '-') + 1); $ End_tm = compute_am_pm_time ($ конец); $ Per_assign [$ последний] = compute_duration ($ end_tm, $ office_start). «Ч»; // присвоить новые значения: $ PROJECT_NAME [$ ASSIGN] [$ t_proj] = $ per_assign; }} / ** * @param $ time_str А время в формате 12H ( "9:30 AM"). * @Returns количества минут после 00:00 * / функции compute_am_pm_time ($ time_str) {список ($ времени, $ части) = взрывается (»», $ time_str, 2); список ($ часов, $ мин) = взорваться ( ':', $ время); $ Ч = ((INT) $ часов) + (strtolower ($ часть) == 'вечер' 12: 0); вернуть $ HRS * 60 + $ мин; } Функция compute_duration ($ end_min, $ begin_min) {возвращение ($ end_min - $ begin_min) / 60; } Выходной массив ([G2E0357] => Array ([10001] => массив ([2018-01-01] => 6 ч [2018-01-02] => 10 ч [2018-01-03] => 2 ч))) Я хочу, чтобы вставить запись, как это с помощью print_r ($ PROJECT_NAME); Идентификатор EmpId ProjectID Дата workingHrs 1 G2E357 10001 2018-01-01 6 ч 2 G2E357 10001 2018-01-02 10 ч 3 G2E357 10001 2018-01-03 2 часов Массив ([2018-01-01] => 6 ч [2018-01-02] => 10 часов [2018-01-03] => 2 ч))) Я хочу, чтобы вставить запись, как это с помощью print_r ($ название проекта); Идентификатор EmpId ProjectID Дата workingHrs 1 G2E357 10001 2018-01-01 6 ч 2 G2E357 10001 2018-01-02 10 ч 3 G2E357 10001 2018-01-03 2 часов Массив ([2018-01-01] => 6 ч [2018-01-02] => 10 часов [2018-01-03] => 2 ч))) Я хочу, чтобы вставить запись, как это с помощью print_r ($ название проекта); Идентификатор EmpId ProjectID Дата workingHrs 1 G2E357 10001 2018-01-01 6 ч 2 G2E357 10001 2018-01-02 10 ч 3 G2E357 10001 2018-01-03 2 часов
Ganesh M
1

голосов
0

ответ
126

Просмотры

Interpolating between values of a DataArray

Я хотел бы знать, что является наиболее эффективным, или самым элегантным способом интерполировать между значениями в DataArray. В идеале это должно быть пригодным для любого числа измерений, но хорошие решения для малых размеров, таких как 2D и 3D также было бы полезно. Я знаю о «методе» ключевое слово для метода Сель и есть ощущение, что это собирается быть частью ответа, но я нахожу, что решение, которое я придумал не очень элегантно. (Я не знаю о его эффективности.) Позвольте мне проиллюстрировать это решение: >>> импорт xarray как хт >>> обр = xr.DataArray ([[12, 32], [14, 34]], ... тускнеет = [ 'х', 'у'], Coords = { 'х': [1, 3], 'у': [2, 4]}) >>> обр массив ([[12, 32], [14 , 34]]) Координаты: * (х) int64 1 3 * у (у) int64 2 4 >>> Arry = ((обр.
equaeghe
1

голосов
1

ответ
47

Просмотры

PHP: Генерировать динамическое меню с CSS кодом из многомерного массива

Я пытаюсь отметить текущую запрошенную страницу в качестве активного в моем меню, но что-то, кажется, идет не так ... Я и мои сотрудники не могут понять, что происходит не так ... Я пытался понять это в течение более чем недель теперь, я прочитал, что чувствует себя десятки вопросов и ответов на этом и других сайтах не дали никаких результатов. Одна вещи, которая действительно озадачивает меня, как значение $ страницы, кажется, изменяется от строки к числу, как вы можете сказать с отладкой я реализованная. Это соответствующий код из index.php: $ страниц = массив ( 'дом', 'overons', 'onsteam', 'Organisatie', 'Diensten', 'aandeslag', 'ictlab', 'eendagbij', '' opdrachtgevers , 'verwijzers', 'trajectbegeleiding', 'контакт'); если (in_array ($ _ GET [ 'р'], $ страниц)) {$ содержание = $ _GET [ 'р']; } Еще {$ содержание = "дома"; } Эхо "\ п"; требуют ($ inc_path.'navbar»$ php_ext.); и код из navbar.php: $ меню = массив ( 'дома', 'overons' => Array ( 'onsteam', 'Organisatie'), 'Diensten' => Array ( 'aandeslag', 'ictlab', «eendagbij '), 'opdrachtgevers', 'verwijzers'=> Массив ( 'trajectbegeleiding'), 'контакт'); $ Имена страниц = массив ( 'дом' => 'Home', 'overons' => 'За Ons', 'onsteam' => 'Ons Team', 'Organisatie' => 'Organisatie', 'Diensten' => «Diensten », 'aandeslag' => 'Aan De Шлак', 'ictlab' => 'Лаборатория ИКТ', 'eendagbij' => 'Een даг бий', 'opdrachtgevers' => 'Opdrachtgevers', 'verwijzers' => 'Verwijzers', 'trajectbegeleiding' => 'Traject begeleiding', 'контакт' => 'Контакт'); функционировать MakeMenu ($ меню, $ CurrentPage, $ уровня = 0) {эхо "\ п"; глобальные $; Имена страниц $ RET = ""; $ Отступа = str_repeat (»», уровень $ * 2); если ($ Уровень = 0) {$ RET = "\ п". . $ RET = Sprintf ( "% s \ п", $ отступа); } Еще {$ RET = "\ п". . $ RET = Sprintf ( "% s \ п", $ отступа); } $ Отступа = str_repeat (»», $ ++ уровень * 2); Еогеасп ($ меню в виде $ стр => $ подстраниц) {если (! is_numeric ($ страница)) {если ($ страница == $ CurrentPage) {$ RET = "\ п". . Если (is_array ($ подстраниц)) {$ RET = Sprintf ( "% S% S", $ отступа, $ страница, $ Имена страниц [$ страница]); } Еще {$ RET = Sprintf ( "% S% s", $ отступа, $ страница, $ Имена страниц [$ страница]). }} Еще {$ RET = "\ п". . Если (is_array ($ подстраниц)) {$ RET = Sprintf ( "% S% S", $ отступа, $ страница, $ Имена страниц [$ страница]); } Еще {$ RET = Sprintf ( "% S% s", $ отступа, $ страница, $ Имена страниц [$ страница]). }}} Если (is_array ($ подстраниц)) {$ RET = "\ N".; . $ RET = MakeMenu ($ подстраниц, $ CurrentPage, $ уровня + 1); . $ RET = $ отступа; } Еще если (зЬгстр ($ страницы, $ подстраниц)) {если ($ страница == $ CurrentPage) {$ RET = "\ п". . $ RET = Sprintf ( "% S% s", $ отступа, $ подстраниц, $ [$ Имена страниц подстраниц]); } Еще {$ RET = "\ п". . $ RET = Sprintf ( "% S% s", $ отступа, $ подстраниц, $ [$ Имена страниц подстраниц]); }} $ RET = Sprintf ( "\ п", $ отступа). } $ Отступа = str_repeat (»», - $ * Уровень 2); . $ RET = Sprintf ( "% s \ п", $ отступа); вернуть ($ RET); } Эхо MakeMenu (меню $, $ содержание); И очень puzzeling выход:
Mattijs Snepvangers
1

голосов
1

ответ
64

Просмотры

Что такое правильный способ поменять местами элементы в multidiamensional массивов в циклах?

У меня есть кусок кода, который проходит через стол и с propability из «pxover», свопы некоторых элементов в нем. Какие элементы должны поменять места, встречается с propability 0,5. Алгоритм делает своп, когда два элемента найден. Evaluation_table образование заключается в следующем: [[(x11, y11), (x12, y12), ... (x1el, y1el)], [(x21, y21), (x22, y22), ..., (x2el, y2el)], ..., [(xpop1, ypop1), (xpop2, ypop2), ..., (xpopel, ypopel)]] код ниже: Защита кроссовер (evaluation_table, поп, no_of_elements, pxover): xover_positions = [] chosen_count = 0 для г в диапазоне (поп): х = равномерное (0,1), если х
tzoukritzou
1

голосов
0

ответ
53

Просмотры

Communication table implementation

Я работаю на встроенном программном обеспечении. Одним из требований является также связь по CAN с помощью собственного протокола. Ядро коммуникационного протокола представляет собой таблицу связи, которая содержит все переданные переменные. Каждая переменная имеет дополнительную информацию, например, идентификационный номер, имя, масштабирование Коэффициент и так далее. Эта таблица связи разделяется на так называемые блоки и каждый блок состоит из нескольких так называемых записей. Одна запись содержит информацию об одной переменной. Ни блоки, ни запись в одном блоке не составляет непрерывную последовательность чисел. Есть «пробела» между номерами блоков и номерами записей. Таким образом, таблица может выглядеть, как, например, таким способом: блок 13: запись 01, запись 04, запись 08; Блок 15: запись 02, запись 03; блок 18: запись 06 я думал о sutaible структуры данных для implentation такой таблицы. Моя первая мысль была одна одномерный массив containig структур с описанием каждого блока данных. Это означает, что номер блока, количество записей в этом блоке, а указатель на первую запись в блоке. Каждый блок будет реализован в виде одномерного массива, содержащего отдельные записи, как структуры, содержащие значение, имя, масштабирование Коэффициент и так далее. Программа написана на C ++, так что я был также думать о два двумерный массив объектов (каждая запись будет осуществляться как экземпляр класса Record). Мне нужно искать в этой таблице очень часто, так что я решил использовать тот факт, что блоки и записи в одном блоке всегда сортируются в господствующее порядке в соответствии с их идентификационным номером, и я собираюсь реализовать алгоритм двоичного поиска. Я бы очень признателен любой Assesment моей идеи. Спасибо заранее за любые предложения.
Steve
1

голосов
0

ответ
36

Просмотры

Петля через 2d массив в словаре

Я зацикливание все значения в 2d массив, который проводится в словаре с ключом Band_1 { 'Band_1': массив ([[0, 0, 0, ..., 0, 0, 0], [0, 0 , 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0], ..., [0, 0, 0, ..., 0, 0 , 0], [0, 0, 0, ..., 0, 0, 0], [0, 0, 0, ..., 0, 0, 0]], DTYPE = uint16)} код выполняется, но массив 2650 x 2650 и у меня есть 150+ словари для обработки на каждом шагу, так что это очень медленно. Примечание: для этого примера, есть только один ключ в словарь, но это не всегда так. Я попробовал 3 различных методы для перебора массива: Метод 1: для ключа, полосы в img.iteritems (): для пиксела в полосах: для й в пикселях: если х = noDataVal: х = х - dark_val остального:! Х = noDataVal Способ 2: для ключа, полосы в img.iteritems ():
Landini135
1

голосов
1

ответ
90

Просмотры

Итоговые биты на моей игре в программе Life. Казалось бы, случайные результаты

Так что я думаю, что я почти закончил на моей игре в программе жизни, но каждый проход сетки не так, как это должно быть, даже если я чувствую, что правильно реализованы правила (см golRules). Поскольку наше назначение должно быть представлено с конкретным входом, вход следующим образом: строки столбцов шаги [Запуск сетка] Таким образом, пример ввод будет: 6-20 .X ... X XXXX..XX.XX. ..XX.X ... XX Но мой первый шаг в этом конкретном примере, возвращает X..XX XX ... X XX .... X..X .. ..... X ..... X Если вы знакомы с игрой жизни вы заметите, что это совершенно неправильно. У меня есть ощущение в функции golRules при создании следующей сетки, ее обновление конкретного элемента по одному, а не все в конце. Любой одолжить парню руку, пожалуйста? # include INT neighbourCount (интермедиат м, Int N, символ сетки [м] [п]) {INT кол = 0; если (сетка [м-1] [п-1] == ' Х ') {кол ++; } Если (сетка [м-1] [п] == 'Х') {кол ++; } Если (сетка [м-1] [п + 1] == 'Х') {кол ++; } Если (сетка [м] [п-1] == 'Х') {кол ++; } Если (сетка [м] [п + 1] == 'Х') {кол ++; } Если (сетка [М + 1] [п-1] == 'Х') {кол ++; } Если (сетка [М + 1] [п] == 'Х') {кол ++; } Если (сетка [М + 1] [п + 1] == 'Х') {кол ++; } Вернуться рассчитывать; } Недействительного printGrid (интермедиат м, Int N, символ сетка [м] [п]) {Int I, J; для (я = 0; я } Недействительного printGrid (интермедиат м, Int N, символ сетка [м] [п]) {Int I, J; для (я = 0; я } Недействительного printGrid (интермедиат м, Int N, символ сетка [м] [п]) {Int I, J; для (я = 0; я
TheButterWorm
1

голосов
1

ответ
40

Просмотры

пл / Postgres фильтр в многомерных массивах

У меня есть таблица вроде этого: ID | имя | оценки --- | ------ | ------- 1 | дИТ | {{3145}, {7888}, {6,13}} 2 | Дат | {{7,6}} 3 | DUT | {{2,3}, {8,1}} 4 | точка | {{7,2}, {8,9}} И я хочу каждую строку, в которой оценка существует элемент, который имеет 7 в качестве первого целого и целого числа больше, чем 4 в качестве второго значения. SELECT, идентификатор из таблицы, где баллы @> {7, х} и х> 4 Таким образом, результат будет: идентификатор - 1 2 С помощью jsonb я смог найти конкретные матчи в баллах, но я не могу найти способ использовать переменную и сравнить его значение. Заранее спасибо!
Tom Gebhardt
1

голосов
2

ответ
71

Просмотры

Java 2D массив, случайное значение становится назначаются, а не значение, которое, как предполагается,

Редактирование 3: Этот вопрос был дан ответ. Я сделал математику неправильно несколько раз и сделал большую ошибку, и, следовательно, не понимает код базы сам был прекрасным первым вопросом здесь, на StackOverflow. Поэтому я бег моделирования, и в моем коде мне нужно моделировать обесценивание ресурсов, что является просто сокращением на 25%. Просто. Но почему-то каждый раз, когда я могу изменить попытаться изменить значение, чтобы быть 75% от исходного значения, сохраняемого в 2D-массив, он изменяет это будет 100, а не независимо от количества. Когда я распечатать значение я устанавливаю его равным, это дает мне правильный номер, но когда я на самом деле установить его, он просто меняет 100. Любые советы или помощь будет высоко ценится. Btw массивы являются глобальными и защищенные 2d массивы типа междунар. Фрагмент кода: Итак, в этом фрагменте кода System.out. Println выводит правильное значение, когда на самом деле назначение комментировало, но когда на самом деле назначено она меняется на 100. Я пробовал несколько вариантов, и все еще пытаюсь исправить это, но я хотел бы знать, если кто-то впали аналогичная проблема раньше? Изменить: Я обновил объявление массива и только другой функции массив получает измененную в значении массива в порядке после функции извлечения ресурсов, но в функции потребления все, ошибки, когда я стараюсь назначая новое значение 75%. в любой данный момент проводятся. Так, например, число в массиве 4000, то после потребления должно быть 3000, но вместо 3000 этой линии просто выводит из 72, потому что 72 является 3/4 из 97 после усечения. Но когда назначение закомментировано и побежал, все числа становятся правильно инкрементируется независимо от количества, как 4869, например. Edit2: Я отправил полноту моего кода. Моделирование выполняется снова и снова. И поэтому добыча и потребление подбежала и снова и снова. Я сделал математику и ошибки, которые я отправил все еще стоит, и только изменяется в зависимости от количества средств и ресурсов. Ex. агент = 24 и ресурса = 24, то после нескольких итераций колпачков на 24 по какой-то причине, и когда агент = 8 и ресурс = 8, то колпачки на 72. Что я сделал математику для и из-за того, как работают формулы , они не должны быть набирают одинаковое количество каждой итерации, пока на самом деле большое количество как 10000 не будет достигнуто. К сожалению для все многословия, и я ценю всю помощь, которую я получил до сих пор! Я отправил полноту моего кода. Моделирование выполняется снова и снова. И поэтому добыча и потребление подбежала и снова и снова. Я сделал математику и ошибки, которые я отправил все еще стоит, и только изменяется в зависимости от количества средств и ресурсов. Ex. агент = 24 и ресурса = 24, то после нескольких итераций колпачков на 24 по какой-то причине, и когда агент = 8 и ресурс = 8, то колпачки на 72. Что я сделал математику для и из-за того, как работают формулы , они не должны быть набирают одинаковое количество каждой итерации, пока на самом деле большое количество как 10000 не будет достигнуто. К сожалению для все многословия, и я ценю всю помощь, которую я получил до сих пор! Я отправил полноту моего кода. Моделирование выполняется снова и снова. И поэтому добыча и потребление подбежала и снова и снова. Я сделал математику и ошибки, которые я отправил все еще стоит, и только изменяется в зависимости от количества средств и ресурсов. Ex. агент = 24 и ресурса = 24, то после нескольких итераций колпачков на 24 по какой-то причине, и когда агент = 8 и ресурс = 8, то колпачки на 72. Что я сделал математику для и из-за того, как работают формулы , они не должны быть набирают одинаковое количество каждой итерации, пока на самом деле большое количество как 10000 не будет достигнуто. К сожалению для все многословия, и я ценю всю помощь, которую я получил до сих пор! Я сделал математику и ошибки, которые я отправил все еще стоит, и только изменяется в зависимости от количества средств и ресурсов. Ex. агент = 24 и ресурса = 24, то после нескольких итераций колпачков на 24 по какой-то причине, и когда агент = 8 и ресурс = 8, то колпачки на 72. Что я сделал математику для и из-за того, как работают формулы , они не должны быть набирают одинаковое количество каждой итерации, пока на самом деле большое количество как 10000 не будет достигнуто. К сожалению для все многословия, и я ценю всю помощь, которую я получил до сих пор! Я сделал математику и ошибки, которые я отправил все еще стоит, и только изменяется в зависимости от количества средств и ресурсов. Ex. агент = 24 и ресурса = 24, то после нескольких итераций колпачков на 24 по какой-то причине, и когда агент = 8 и ресурс = 8, то колпачки на 72. Что я сделал математику для и из-за того, как работают формулы , они не должны быть набирают одинаковое количество каждой итерации, пока на самом деле большое количество как 10000 не будет достигнуто. К сожалению для все многословия, и я ценю всю помощь, которую я получил до сих пор! они не должны быть набирают одинаковое количество каждой итерации, пока на самом деле большое количество как 10000 не будет достигнуто. К сожалению для все многословия, и я ценю всю помощь, которую я получил до сих пор! они не должны быть набирают одинаковое количество каждой итерации, пока на самом деле большое количество как 10000 не будет достигнуто. К сожалению для все многословия, и я ценю всю помощь, которую я получил до сих пор!
David
1

голосов
1

ответ
43

Просмотры

Заполнение в 2D массив с новым 1-элементных массивов недостающих чисел (от суб-массивов начального)

Я ищу, чтобы создать функцию, которая принимает в массив Массивы последовательных чисел (с редкими пробелов) Пример ввода: [[1, 2, 3], [8, 9], [13, 14]] ... и выводит новый массив массивов, с недостающими номерами, вставленных в последовательно-правильном положении, в качестве единственного элемента своего собственного примера выходного массива: [[0], [1, 2, 3], [4], [5 ], [6], [7], [8, 9], [10], [11], [12], [13, 14]] Что является наиболее производительным способом для достижения этой цели? Если кто-то может выписать логику или указать меня к примеру, что было бы весьма признателен. Спасибо!!!
Harry Solovay
1

голосов
1

ответ
162

Просмотры

Изменение размера многомерного массива раз

Я делаю настольную игру, где у меня есть х и у позиции на доске. Я добавляю функциональность, где пользователь может выбрать размеры платы, но есть одна проблема. Мне нужно, чтобы получить доступ к доске с помощью функции, поэтому я объявил плату за пределами моего Sub Main (). Я слышал, что вы можете использовать ReDim, но также видел это не лучшие практики? Как изменить размер 2-мерный массив внутри Sub Main () после того, как пользователь ввел размеры платы? Или я ошибаюсь, что ReDim плохая практика, когда на самом деле это хорошая практика? Благодарю.
D-A UK
0

голосов
3

ответ
30

Просмотры

Trying to create a multi-dimensional array in a function

I am currently trying to take 3 seperate inputs and convert them into a multidimensional array. I know the most inputs that a user can enter is 8 however my current code prints the empty arrays. I am looking for a way to dynamically create what I have coded to avoid this issue. Below is a copy of the function I made. a = 'Hi' b = 878 c = 654 function exitToTable(a, b, c) { for (var i = 0; i < 8; i++) { tester[i] = new Array(8); } tester[0][0] = a[0]; tester[0][1] = b[0]; tester[0][2] = c[0]; tester[1][0] = a[1]; tester[1][1] = b[1]; tester[1][2] = c[1]; tester[2][0] = a[2]; tester[2][1] = b[2]; tester[2][2] = c[2]; tester[3][0] = a[3]; tester[3][1] = b[3]; tester[3][2] = c[3]; tester[4][0] = a[4]; tester[4][1] = b[4]; tester[4][2] = c[4]; tester[5][0] = a[5]; tester[5][1] = b[5]; tester[5][2] = c[5]; tester[6][0] = a[6]; tester[6][1] = b[6]; tester[6][2] = c[6]; tester[7][0] = a[7]; tester[7][1] = b[7]; tester[7][2] = c[7]; for (var i = 0; i < 8; i++) { for (var j = 0; j < 3; j++) { document.write(tester[i][j] + ' '); } document.write(''); } } I am hoping for the array to print out as follows if a = 'Hi' b = 878 c = 654 However note that 'a' 'b' and 'c' are all arrays storing their own data. Each element in a will be a string and each element in b and c are integers. Hi 878 654 Hi 878 654 Hi 878 654 ETC....
AntiMeta
1

голосов
0

ответ
88

Просмотры

Спектральный норма тензора

Я хочу, чтобы создать тензор, спектральная норма меньше или равна единице. Я написал код, чтобы сделать это, но я не уверен, если это на самом деле правильно, потому что я не уверен, является ли на самом деле рассчитывает норму L2 Numpy в спектральную норму. Мой код: Защита make_tensor (форма): Y = np.zeros (форма) мат = [] для я в диапазоне (3): матрица = np.random.random_integers (0, 255, (форма [0], формы [1 ])) = матрица матрица / (LA.norm (матрица 2) + np.random.randint (0255)) mat.append (матрица) Y [:,:, I] = мат [я] вернуться у будет У тензор, спектральная норма меньше или равен единице?
vaspurakan
1

голосов
1

ответ
250

Просмотры

deep learning (lstm) with keras and variable size of inputs

Я пытаюсь реализовать модель LSTM с keras. Проблема заключается в том, что у меня есть данные различных форм. Мои данные выглядит следующим образом: col1 col2 col3 COL4 col5 [1,2,3] [2,3,4] [3,4,5] [5,6,7] [4,5,9] [0,2 ] [1,5] [1,24] [11,7] [-1,4] [0,2,4,5] [1,5,7,8] [1,24, -7,6] [11,7,4,5] [-1,4,1,2] Мой код импорт NumPy в н.п. импорт панд как П.Д. импорт h5py из sklearn.model_selection импорта train_test_split из keras.layers импортирует Плотная из keras.layers импорта входа , LSTM от keras.models импорта Модель X_train, X_test, y_train, y_test = train_test_split (Х, y_target, test_size = 0,2, random_state = 1) batch_size = 32 = 300 временных шагов output_size = 1 = 120 эпохами входов = вход (batch_shape = (batch_size , временные шаги, output_size)) lay1 = LSTM (10, сохраняющие состояние = True, return_sequences = True) (входы) lay2 = LSTM (10, с сохранением состояния = True,
Liliane
1

голосов
1

ответ
28

Просмотры

Почему я не могу получить одномерный массив колонки, как легко, как ряд?

Предпосылки Это 2d array.- String [] [] имена = {{ "Сэм", "Смит"}, { "Роберт", "Delgro"}, { "Джеймс", "Гослинг"},}; Я могу получить доступ строки, вызвав этим: имена [N], где n означает любое целое число между границами и в этом случае 0
Paul
1

голосов
1

ответ
152

Просмотры

Применить функцию с условным оператором на многомерный массив

У меня есть два 3D-массивов: а = массив (1:27, DIM = с (3,3,3)) B = массив (C (0,2,6,0), DIM = с (3,3,3 )) Я хотел бы суммировать все значения в массиве вдоль г-размерности (получение 2D-матрицы), для которого значение в соответствующем х, у, Z-расположение в массиве Ь является> 0. Я бы предпочитают комбинацию применять (лучше со стандартной функцией) и Условный оператор, как суммированный = применять (а, с (1,2), сумма {если (б [б> 0])}), что дает мне синтаксическую ошибку, хотя , Что мне не хватает здесь?
Elli
1

голосов
3

ответ
46

Просмотры

Нажмите элементы в ассоциативном массиве индивидуально в PHP

У меня есть фрагмент кода, как, Предположим различную длину массива, как, длина $ name1Array 8 и длина $ name2Array 5 для ($ I = 0; $ г <подсчет ($ name1Array); $ я ++) {$ finalArray [ "что-то"] [] = массив ( "name1" => $ name1Array [$ я], "name2" => $ name2Array [$ я]); } Приведенный выше фрагмент кода работает все хорошо, но когда длины $ name1Array и $ name2Array различны? Я попробовал 2 для петель для каждого из них, как, для ($ I = 0; $ я <число ($ name1Array); $ я ++) {$ finalArray [ "что-то"] [] = массив ( "name1" => $ name1Array [$ я]); } Для ($ I = 0; $ г <подсчет ($ name2Array); $ я ++) {$ finalArray [ "что-то"] [] = массив ( "имя2" => $ Name2Array [$ я]); } Это не работал, есть ли работа вокруг него?
Mann
1

голосов
2

ответ
37

Просмотры

Смешивание 3D массивов в большую 3D-массив

Я желаю, чтобы заполнить N х М х Ш матрицу «S» с данными из матриц «P» и «Q». Они определены ниже, и это показано на прилагаемом изображении. Кроме того, мы знаем наверняка, что n_1 + n_2 = N, т <М, так что все данные могут поместиться в матрице «S». S = нули (М, N, W); Р = Rand (м, n_1, Вт); Q = Rand (м, n_2, Вт); Я хотел бы объединить «P» и «Q» в порядке, определенном 3 другими матрицами, «Line_num», «P_col» и «Q_col», описаны ниже и в средней части прилагаемого изображения. P_col = randperm (N); P_col = P_col (1: n_1); % 1 х n_1 матрица Q_col = setxor (P_col, 1: 1: N); % 1 х n_2 матрица Line_num является матрица, составленная из W векторов вида аа: 1: бб, где бб-аа = т и аа выбираются случайным образом для каждого вектора. Важно то, что в этом случае данные вдоль 3-го измерения во всех этих матрицах представляют W различных тестовых случаев, с данными, отличаться от других, а не быть смешаны друг с другом. Для того, чтобы заполнить «S», можно действовать в двух логических шагов (хотя, если это может быть сделано в одном буду рад) объединить Q и P в промежуточную матрицу Y формы м х N х Ш с переплетением их столбцов. Столбцы, указанные в «Q_col» взяты из Q (с помощью векторного индекса) и поместить в матрицу Y (используя значение вектора). То же самое для Р. Для каждого из векторов W, составляющих Line_num и массивов, входящих в состав S, используют значения в вектор Line_num разложить Y в соответствующие строки в S, в то время сохраняя их сверху донизу порядке. Я хочу, чтобы достичь этой цели без для петель, как я смотрю на «векторизовать» мой код и тем самым улучшить свою скорость бега. Я имел взгляд на этот пост и этот пост, которые похожи на то, что я желаю. Однако они проще, так как номера, чтобы быть извлечены постоянны. Может быть, что-то подобное было бы уместно? Спасибо за вашу помощь :) Ссылка на изображение вышеупомянутого EDIT: Вот пример код с для цикла, что я хочу (моя проблема в том, что я хочу, чтобы избавиться от петли) W = 4; N = 10; n_1 = 4; n_2 = 6; М = 20; м = 5; P_col = [1,3,5,8]; % 1 х n_1 матрица Q_col = setxor (P_col, 1: 1: N); % 1 х n_2 матрица line_num (:,:, 1) = [1,5,10,15,18]; line_num (:,:, 2) = [2,3,8,11,12]; line_num (:,:, 3) = [4,7,8,14,19]; line_num (:,:, 4) = [2,6,13,15,16]; S = нули (М, N, W); Р = Rand (м, n_1, Вт); Q = Rand (м, n_2, Вт); для ш = 1: W = line_num_I line_num (:,:, ш); S (line_num_I, Q_col, ш) = Q (:,:, ш); S (line_num_I, P_col, ш) = Р (:,:, ш); конец Может быть, что-то подобное было бы уместно? Спасибо за вашу помощь :) Ссылка на изображение вышеупомянутого EDIT: Вот пример код с для цикла, что я хочу (моя проблема в том, что я хочу, чтобы избавиться от петли) W = 4; N = 10; n_1 = 4; n_2 = 6; М = 20; м = 5; P_col = [1,3,5,8]; % 1 х n_1 матрица Q_col = setxor (P_col, 1: 1: N); % 1 х n_2 матрица line_num (:,:, 1) = [1,5,10,15,18]; line_num (:,:, 2) = [2,3,8,11,12]; line_num (:,:, 3) = [4,7,8,14,19]; line_num (:,:, 4) = [2,6,13,15,16]; S = нули (М, N, W); Р = Rand (м, n_1, Вт); Q = Rand (м, n_2, Вт); для ш = 1: W = line_num_I line_num (:,:, ш); S (line_num_I, Q_col, ш) = Q (:,:, ш); S (line_num_I, P_col, ш) = Р (:,:, ш); конец Может быть, что-то подобное было бы уместно? Спасибо за вашу помощь :) Ссылка на изображение вышеупомянутого EDIT: Вот пример код с для цикла, что я хочу (моя проблема в том, что я хочу, чтобы избавиться от петли) W = 4; N = 10; n_1 = 4; n_2 = 6; М = 20; м = 5; P_col = [1,3,5,8]; % 1 х n_1 матрица Q_col = setxor (P_col, 1: 1: N); % 1 х n_2 матрица line_num (:,:, 1) = [1,5,10,15,18]; line_num (:,:, 2) = [2,3,8,11,12]; line_num (:,:, 3) = [4,7,8,14,19]; line_num (:,:, 4) = [2,6,13,15,16]; S = нули (М, N, W); Р = Rand (м, n_1, Вт); Q = Rand (м, n_2, Вт); для ш = 1: W = line_num_I line_num (:,:, ш); S (line_num_I, Q_col, ш) = Q (:,:, ш); S (line_num_I, P_col, ш) = Р (:,:, ш); конец Ниже приведен пример кода с петлей для-того, что я хочу (моя проблема в том, что я хочу, чтобы избавиться от петли) W = 4; N = 10; n_1 = 4; n_2 = 6; М = 20; м = 5; P_col = [1,3,5,8]; % 1 х n_1 матрица Q_col = setxor (P_col, 1: 1: N); % 1 х n_2 матрица line_num (:,:, 1) = [1,5,10,15,18]; line_num (:,:, 2) = [2,3,8,11,12]; line_num (:,:, 3) = [4,7,8,14,19]; line_num (:,:, 4) = [2,6,13,15,16]; S = нули (М, N, W); Р = Rand (м, n_1, Вт); Q = Rand (м, n_2, Вт); для ш = 1: W = line_num_I line_num (:,:, ш); S (line_num_I, Q_col, ш) = Q (:,:, ш); S (line_num_I, P_col, ш) = Р (:,:, ш); конец Ниже приведен пример кода с петлей для-того, что я хочу (моя проблема в том, что я хочу, чтобы избавиться от петли) W = 4; N = 10; n_1 = 4; n_2 = 6; М = 20; м = 5; P_col = [1,3,5,8]; % 1 х n_1 матрица Q_col = setxor (P_col, 1: 1: N); % 1 х n_2 матрица line_num (:,:, 1) = [1,5,10,15,18]; line_num (:,:, 2) = [2,3,8,11,12]; line_num (:,:, 3) = [4,7,8,14,19]; line_num (:,:, 4) = [2,6,13,15,16]; S = нули (М, N, W); Р = Rand (м, n_1, Вт); Q = Rand (м, n_2, Вт); для ш = 1: W = line_num_I line_num (:,:, ш); S (line_num_I, Q_col, ш) = Q (:,:, ш); S (line_num_I, P_col, ш) = Р (:,:, ш); конец line_num (:,:, 4) = [2,6,13,15,16]; S = нули (М, N, W); Р = Rand (м, n_1, Вт); Q = Rand (м, n_2, Вт); для ш = 1: W = line_num_I line_num (:,:, ш); S (line_num_I, Q_col, ш) = Q (:,:, ш); S (line_num_I, P_col, ш) = Р (:,:, ш); конец line_num (:,:, 4) = [2,6,13,15,16]; S = нули (М, N, W); Р = Rand (м, n_1, Вт); Q = Rand (м, n_2, Вт); для ш = 1: W = line_num_I line_num (:,:, ш); S (line_num_I, Q_col, ш) = Q (:,:, ш); S (line_num_I, P_col, ш) = Р (:,:, ш); конец
Fennec
1

голосов
1

ответ
44

Просмотры

Оптимизация многомерных функций с Ceres

Я хочу использовать Ceres для оптимизации функции п параметров. Как найти градиент этой функции не ясно, хотя у меня есть хорошо определенная стоимость. Я использовал GSL до сих пор, с цифровой дифференциацией, но я думал, что я хотел бы попробовать использовать Ceres с автоматическим диффом. Я имел взгляд на игрушку, например helloworld_analytic_diff.cc, в которых они используют AutoDiff, чтобы минимизировать функцию (х) = 0,5 (10 - х) ^ 2 и читать учебник, так что я думал, что я хотел бы попробовать и расширить это до двумерная функция F (х, у) = (10-х) ^ 2 + (20- у) ^ 2, которая имеет глобальный минимум в точке х, у = 10, 20. Но я получаю немного застрял на этом: #include "Ceres / ceres.h" #include "GLog / logging.h" с использованием Ceres :: AutoDiffCostFunction; используя Ceres :: CostFunction; используя Ceres :: Проблема; используя Ceres :: Solver; используя Ceres :: Решить; CostFunctor структура {шаблон BOOL оператор () (Const Т * сопз х, Т * остаточная) сопзЬ {константные T x1 = х [0]; Const Т у1 = х [1]; Остаточное [0] = (10.0-х [0]) + (20,0-х [1]); возвращает истину; }}; INT основных (INT ARGC, символ ** ARGV) {Google :: InitGoogleLogging (ARGV [0]); двойные х [2] = {0,5, -3,0}; Const двойной initial_x [2] = {0,5, -3,0}; Проблема Проблема; CostFunction * cost_function = новый AutoDiffCostFunction (новый CostFunctor); problem.AddResidualBlock (cost_function, NULL, & х [0]); // Запуск решатель! Варианты Solver :: Опции; options.minimizer_progress_to_stdout = TRUE; Solver :: Резюме резюме; Решить (варианты, и проблемы, и резюме); станд :: соиЬ 0-х [0]) + (20,0-х [1]); возвращает истину; }}; INT основных (INT ARGC, символ ** ARGV) {Google :: InitGoogleLogging (ARGV [0]); двойные х [2] = {0,5, -3,0}; Const двойной initial_x [2] = {0,5, -3,0}; Проблема Проблема; CostFunction * cost_function = новый AutoDiffCostFunction (новый CostFunctor); problem.AddResidualBlock (cost_function, NULL, & х [0]); // Запуск решатель! Варианты Solver :: Опции; options.minimizer_progress_to_stdout = TRUE; Solver :: Резюме резюме; Решить (варианты, и проблемы, и резюме); станд :: соиЬ 0-х [0]) + (20,0-х [1]); возвращает истину; }}; INT основных (INT ARGC, символ ** ARGV) {Google :: InitGoogleLogging (ARGV [0]); двойные х [2] = {0,5, -3,0}; Const двойной initial_x [2] = {0,5, -3,0}; Проблема Проблема; CostFunction * cost_function = новый AutoDiffCostFunction (новый CostFunctor); problem.AddResidualBlock (cost_function, NULL, & х [0]); // Запуск решатель! Варианты Solver :: Опции; options.minimizer_progress_to_stdout = TRUE; Solver :: Резюме резюме; Решить (варианты, и проблемы, и резюме); станд :: соиЬ problem.AddResidualBlock (cost_function, NULL, & х [0]); // Запуск решатель! Варианты Solver :: Опции; options.minimizer_progress_to_stdout = TRUE; Solver :: Резюме резюме; Решить (варианты, и проблемы, и резюме); станд :: соиЬ problem.AddResidualBlock (cost_function, NULL, & х [0]); // Запуск решатель! Варианты Solver :: Опции; options.minimizer_progress_to_stdout = TRUE; Solver :: Резюме резюме; Решить (варианты, и проблемы, и резюме); станд :: соиЬ
Mr Squid
1

голосов
0

ответ
43

Просмотры

Multidimensional array key intersection add value on condition both values are equal in php

I have two multidimensional arrays $array1 = Array ( [a1] => Array ( [a_name] => aaaaa [a_value] => aaa ) [b1] => Array ( [b_name] => zzzzz [b_value] => bbb ) [c1] => Array ( [c_name] => ccccc [c_value] => ccc ) ) $array2 = Array ( [b1] => Array ( [b_name]=> zzzzz ) ); Here i want to append both if array2 match value is equal to array1 with key and value, i.e, both are matching or both are not matching within array2 function recursive_array_intersect_key(array $array1, array $array2) { $array1 = array_intersect_key($array1, $array2); foreach ($array1 as $key => &$value) { if (is_array($value) && is_array($array2[$key])) { $value = recursive_array_intersect_key($value, $array2[$key]); } } return $array2; } Expectet output as if array2 matched with array2 $array2 = Array ( [b1] => Array ( [b_name]=> zzzzz ), [status] => Both Matched ); or for not matched array2 with array2 $array2 = Array ( [b1] => Array ( [b_name]=> zzzzz ), [status] => Not Matched );
VijayaKrishna
1

голосов
3

ответ
63

Просмотры

Как найти строку в массив массивов с помощью функции яваскрипта

Эта функция может искать строку в массиве: общественный checkElement (массив) {для (вар я = 0; я <array.length; я ++) {если (массив [я] == «some_string») {возвращает истину ; }}} Как я могу использовать массив массивов в цикл? Я хочу, чтобы передать это функции, которая поиск строки с условием, если. Пример входных данных: массив [[ 'один', 'два'], [ 'три', 'четыре'], [ 'пять', 'шесть']].
Sridhar Natuva
1

голосов
1

ответ
39

Просмотры

чтение файла .txt и делает массив (Java)

Im пытаясь прочитать в файл .txt и сделать многомерный массив из него. Я не понимаю, почему я и J петля Арента заселения моего массива. Любые указатели высоко ценится .... импорт java.util. *; импорт java.io. *; общественного класса arrayChallenge {государственной статической силы основных (String [] арг) бросает FileNotFoundException {Input File = новый файл ( "input.txt"); Сканер Scan1 = новый сканер (вход); INT = ширина 10, высота = 10; символ [] [] arrayMulti = новый символ [ширина] [высота]; для (INT I = 0; я
JK'sScowling
1

голосов
2

ответ
46

Просмотры

VBA Если оператор внутри цикл не оценивать истинное

Я работаю на макрос, который с помощью многомерного массива провести несколько столбцов данных. Макрос затем помещает значение массива в новой книге. Все отлично работает для одного, если заявления, за исключением. Вот подпрограмма ти, если заявление Sub толчке (toWorkbook As Workbook, ByRef код () As Variant) 'activeBook = "TempEDI.xlsm"' Workbooks (activeBook) .Activate «установить новую книгу в качестве активной книги Dim newSheet As Worksheet Set newSheet = toWorkbook.Sheets (1) = 2 ч е = 0 г = 0 newSheet.Cells (1, 1) .value = "Клиент" newSheet.Cells (1, 2) .value = "#" Счет newSheet.Cells (1, 6) .Value = "АСН" Для я = 0 Для UBOUND (код) newSheet.Cells (H, 1) = .Value кода (I, 0) newSheet.Cells (H, 2) .Value = кода (I, 1 ) Если код (е, 2) = код (я, 1) Тогда newSheet.Cells (ч, 6) .Value = код (е,
Austin Jones
1

голосов
0

ответ
36

Просмотры

VBA: Как хранить как значений в массивах из списка в 2 колонки

Я буду получать право на то, что я хочу сделать. У меня есть список из 2 колонков, как таковые: time1 ПИД1 time2 ПИД1 time3 pid4 time4 pid4 time5 pid4 time6 ПИД1 time7 ПИД1 ... ... У меня уже есть вышеуказанная информация, хранящаяся в массиве. Мой вопрос, с помощью VBA, как я могу пройти через массив и создать подмассивы для каждого нового набора значений, например, так: array1 будет содержать ПИД1, TIME1 ПИД1, time2 array2 будет содержать pid4, time3 pid4, time4 pid4, time5 array3 будет содержать ПИД1, time6 ПИД1, time7 и так далее до конца списка ?? Мне нужно настроить этот конкретный путь, потому что мне нужно найти мин / макс время из каждого набора, как ценности, и тогда я мог бы просто пройти через каждый массив и найти мин / макс время для значений времени этого массива.
JohnnyBoy
1

голосов
1

ответ
53

Просмотры

Ошибки при выделении массивов динамически. vfscanf.c: 1898

Я пытаюсь сделать программу, которая говорит, что если массив является магическим квадратом. Он работал хорошо при создании до размеров 3х3. Но от 4x4 они ведут себя плохо. 5x5, или выше, я получаю «Сегментация Сбои (записанные ядра изображения)» ошибка, всегда в той же точке: мат [4] [0]. Вот мой код: #include #include INT QM (интермедиат ** мат, Int N) {INT сл = 0, СБН = 0, SDP = 0, SdS = 0; Int I, J; для (я = 0; <п; я ++) {Sl + = мат [0] [I]; подкожно + = мат [I] [0]; SDP + = мат [I] [I]; = SDS + мат [я] [п-1]; } Если ((сл = п.к.) || (сл = SDP) || (сл = ДСН)!!!) Возвращение 0; еще {для (я = 1; <п; я ++) {INT Templ = 0, tempC = 0; для (J 1, J
Lucas Sávio
1

голосов
1

ответ
92

Просмотры

Как вы поворачиваете на массив на 90 градусов без использования массива хранения данных в Java?

Мне было приказано не использовать массив хранения данных для выполнения этой задачи. В основном, мы должны создать функцию, которая вращает содержимое 2d массива 90 градусов. Так что, если я начинаю с этим массивом: Int [] [] массив = {{1,2,3}, {4,5,6}, {7,8,9}}; Функция должна возвращать массив следующим образом: {{7,4,1}, {8,5,2}, {9,6,3}} Опять же мы не имеем права использовать созданный массив внутри функции для хранения. Возможно ли это, чтобы сделать это без массива хранения данных?
Guinevere Jackson
1

голосов
3

ответ
42

Просмотры

как вставить элемент в начале ассоциативного массива в PHP

Я в настоящее время пытаюсь сгруппировать мои данные, основанный на дату и некоторое имя. Вот мой код $ данных = []; Еогеасп ($ AllMatches как $ D) {$ имя = $ d [ 'DIV'] [ 'divisionName']; $ данных [$ d [ 'playingDate']] [$ имя] [] = $ д; $ данных [$ d [ 'playingDate']] [ 'день'] = $ d [ 'день']; $ данных [$ d [ 'playingDate']] [ 'месяц'] = $ d [ 'месяц']; $ данных [$ d [ 'playingDate']] [ 'isToday'] = $ d [ 'isToday']; } Вернуть $ данных; ВЫХОД ====== 2018-09-18: {Elitserien: [+], день: "18", месяц: "сентябрь", isToday: истинно, Раздел 2: [+], Отдел 5: [+]} , текущие из пут начинаются с Elitserien, но я хочу достичь дивизии 5 в начале .. чтобы в дальнейшем, вот картинка текущих данных Я хочу, чтобы вставить новый элемент всегда в начале массива. Как мне это сделать? Огромное спасибо.
sadek
1

голосов
1

ответ
151

Просмотры

xarray slice data by multiple dimensions

Я работаю с прогнозными данными от GFS. Я написал следующую функцию для извлечения таймсерий из архива прогнозов: time_series_from_ensemble_archive четкости (ensemble_archive, lead_time: Int = 0, ensemble_member: INT = 0): данные = ensemble_archive данных [ 'возраст'] = (data.validityDateTime - данные .as_of_datetime) .astype (np.float) age_idx = данные [ 'возраст'] == возврата lead_time данных [:, ensemble_member,:,:,:]. значения [age_idx.T,:,:] Он работает, как ожидалось: Здесь данные: Координаты: * validityDateTime (validityDateTime) datetime64 [нс] 2017-10-01 ... * perturbationNumber (perturbationNumber) int32 0 1 2 3 4 5 6 7 8 9 10 11 ... * LON (долгота) float64 -119,0 -118,5 -118,0 -117,5 -117,0 ... * лат (лат) float64 45,5 45,0 44,5 44,0 43,5 43,0 42,5 ... * as_of_datetime (as_of_datetime) datetime64 [нс] 2017-10-01 ... Атрибуты: Название: 2 измеритель температуры и с моей функции: temp_ts = time_series_from_ensemble_archive (данные) temp_ts.shape (124, 10, 20) типа (temp_ts) NumPy .ndarray Однако, я чувствую, что это не самый «вещий» или «xarrayic» подход, и было бы лучше, чтобы вернуть другой xarray объект. Предложения по улучшению здесь? Может кто-то обеспечить решение с помощью expand_dims или методов .sel? и было бы лучше, чтобы вернуть другой xarray объект. Предложения по улучшению здесь? Может кто-то обеспечить решение с помощью expand_dims или методов .sel? и было бы лучше, чтобы вернуть другой xarray объект. Предложения по улучшению здесь? Может кто-то обеспечить решение с помощью expand_dims или методов .sel?
user5781
1

голосов
1

ответ
27

Просмотры

отображение многомерных массивов андроида

Я использую андроид студии и с OpenCV 3.4.0. Я хочу, чтобы отобразить многомерный массив в текстовом виде. У меня есть массив «candidats_result» и я скопировал ее значение в многомерный массив «финал». после того, как подножка моего кода, я получил этот результат в дисплее эмулятора. что я должен изменить в своем коде, чтобы получить текст отображается двойной [] [] R_finale = новый двойной [20] [20]; INT ZZ = 0; INT ZE = 0; INT EE = 0; для (INT I = 0; я
ben mbarek Manef
1

голосов
2

ответ
37

Просмотры

Умножьте многомерную матрицу, чтобы получить новый dataframe с новыми именами столбцов

Я создал 2 DataFrames с [6,2] и [3,2]. Я хочу, чтобы к нескольким 2 DataFrames, чтобы получить [6,3] матрицы. Я использую петлю ниже, но это дает мне обратный self._getitem_column (ключ) error.Below пример. df1 = pd.DataFrame {[1,2,3,4,5,6], [23,24,25,26,27,28]} df2 = pd.DataFrame {[1,2,3], [12 , 13,14]} для J в диапазоне (LEN (df2)): для я в диапазоне (LEN (df1)): DF3 = (df1 [я, 2] * df2 [J, 2]) #expected результат DF3 = {0 1 2 3 1 276 299 322 2 288 312 336 3 300 325 350 4 312 338 364 5 324 351 378 6 336 364 392} Я пытаюсь повторить то, что я сделал в листе первенствовать
lakshman sridhar
1

голосов
0

ответ
55

Просмотры

Генерация вложенного списка HashMap из массива двумерный

Я хочу, чтобы сгруппировать array_list, если его же CompanyID услуги ( «POSID», «POSCODE», «POSTEXT») должны быть сгруппированы родителю. Публичный список GetList (String [] [] array_list) {данные ArrayList = новый ArrayList (); / * Пример Содержание String [] [] array_list {{ "4470", "зона А", "20", "13", "1", "3800", "Очистка таблицы"}, { "4470", " Зона А " "20, "13"", "2", "3600", "Стиральная машина"}, { "4470", "зона А", "20", "13", "3"," 3900" , "Подготовка пищи"}, { "4480", "ZONE B", "10", "9", " я ++) {HashMap родитель = новый HashMap (); HashMap ребенок = новый HashMap (); для (Int J = 0; J <company_fieldnames.length; j ++) {parent.put (company_fieldnames [J], array_list [I] [J]); } Для (INT к = 0; к <services_fieldnames.length; K ++) {child.put (services_fieldnames [K], array_list [I] [K +]) company_fieldnames.length; } // TODO // Если ID же компании (4470), то услуги должны быть группировки и перейти к родительскому элементу parent.put ( «услуга», ребенок); data.add (родитель); } Возвращать данные; } Результат для одной компании должно выглядеть так: [{ "CompanyID": "4470", "СЕКТОР": "ZONE A", "
FanaticTyp
1

голосов
1

ответ
20

Просмотры

how to get the index of every array on multidimensional array with unknown depth in php

Массив (1) {[ «имя»] => строка (26) «Hutan Лохан Basah Sekunder»}}}}}} У меня есть массив, как я упомянул выше, поэтому я хочу, чтобы распечатать каждую клавишу «имя», включая индекс (номер) из его родительского массива, например, когда я распечатать «Tanaman Campuran», так что все индекс родитель (0) (5) и при печати «Hutan Лохан Basah Sekunder» индекс родитель (1) (1) (1), как я могу добиться этого? вот некоторая рекурсивная функция, которую я попытался $ GLOBALS [ «все»] = «»; Функция распечатки ($ обр) {Еогеасп ($ обр, как $ Ia => $ а) {если (is_array ($ а)) {Еогеасп ($ в качестве $ И.Б. => $ б) {если (is_array ($ б)) {распечатка ($ б); } Еще {если ($ И.Б. == 'имя' ) {$ GLOBALS [ 'все'] = $ IA. эхо «»; эхо «». $ Б. '(' $ НМА.. ')'; эхо «»; $ GLOBALS [ 'все'] = ''; }}}}}} * Извините за мое плохое объяснение, я надеюсь, что вы, ребята, можете понять
Boy Panjaitan
1

голосов
3

ответ
56

Просмотры

Построить таблицу с RowSpan использованием многомерного массива

Я хочу, чтобы студенты и событие за неделю, которые будут отображаться в календарном format.I есть этот массив следующим образом. Каждый студент имеет 7 массивов, начиная с понедельника по воскресенье и внутренний массив каждого есть события на день массива $ = [ «Alex» => [[[ «событие» => «eventName1»], [ «событие» => «eventName2» ]], [[ 'событие' => 'eventName3'], [ 'событие' => 'eventName4']], [[ 'событие' => 'eventName5'], [ 'событие' => 'eventName6']] , [[ 'событие' => 'eventName7'], [ 'событие' => 'eventName8']], [], [], []], 'Аллен' => [[[ 'событие' => ' EventName '], [' событие»=> 'EventName']], [[ 'событие' => 'EventName'], [ 'событие' => 'EventName']], [], [], [], [ ], []],]; Мне нужен массив отображается в неделю календаря, я не знаю, где это пошло не так следующий код участника Понедельник Вторник Среда Thrusday Пятница Satday воскресенье Моя проблема заключается в цикл и как печатать события в определенный день. Может кто-нибудь, пожалуйста, в создании правильного формата. Спасибо за помощь событие»=> '']], [[ 'событие EventName' => 'EventName'], [ 'событие' => 'EventName']], [], [], [], [], []], ]; Мне нужен массив отображается в неделю календаря, я не знаю, где это пошло не так следующий код участника Понедельник Вторник Среда Thrusday Пятница Satday воскресенье Моя проблема заключается в цикл и как печатать события в определенный день. Может кто-нибудь, пожалуйста, в создании правильного формата. Спасибо за помощь событие»=> '']], [[ 'событие EventName' => 'EventName'], [ 'событие' => 'EventName']], [], [], [], [], []], ]; Мне нужен массив отображается в неделю календаря, я не знаю, где это пошло не так следующий код участника Понедельник Вторник Среда Thrusday Пятница Satday воскресенье Моя проблема заключается в цикл и как печатать события в определенный день. Может кто-нибудь, пожалуйста, в создании правильного формата. Спасибо за помощь ]], [[ 'Событие' => 'EventName'], [ 'событие' => 'EventName']], [], [], [], [], []],]; Мне нужен массив отображается в неделю календаря, я не знаю, где это пошло не так следующий код участника Понедельник Вторник Среда Thrusday Пятница Satday воскресенье Моя проблема заключается в цикл и как печатать события в определенный день. Может кто-нибудь, пожалуйста, в создании правильного формата. Спасибо за помощь ]], [[ 'Событие' => 'EventName'], [ 'событие' => 'EventName']], [], [], [], [], []],]; Мне нужен массив отображается в неделю календаря, я не знаю, где это пошло не так следующий код участника Понедельник Вторник Среда Thrusday Пятница Satday воскресенье Моя проблема заключается в цикл и как печатать события в определенный день. Может кто-нибудь, пожалуйста, в создании правильного формата. Спасибо за помощь событие»=> 'EventName']], [], [], [], [], []],]; Мне нужен массив отображается в неделю календаря, я не знаю, где это пошло не так следующий код участника Понедельник Вторник Среда Thrusday Пятница Satday воскресенье Моя проблема заключается в цикл и как печатать события в определенный день. Может кто-нибудь, пожалуйста, в создании правильного формата. Спасибо за помощь событие»=> 'EventName']], [], [], [], [], []],]; Мне нужен массив отображается в неделю календаря, я не знаю, где это пошло не так следующий код участника Понедельник Вторник Среда Thrusday Пятница Satday воскресенье Моя проблема заключается в цикл и как печатать события в определенный день. Может кто-нибудь, пожалуйста, в создании правильного формата. Спасибо за помощь Мне нужен массив отображается в неделю календаря, я не знаю, где это пошло не так следующий код участника Понедельник Вторник Среда Thrusday Пятница Satday воскресенье Моя проблема заключается в цикл и как печатать события в определенный день. Может кто-нибудь, пожалуйста, в создании правильного формата. Спасибо за помощь Мне нужен массив отображается в неделю календаря, я не знаю, где это пошло не так следующий код участника Понедельник Вторник Среда Thrusday Пятница Satday воскресенье Моя проблема заключается в цикл и как печатать события в определенный день. Может кто-нибудь, пожалуйста, в создании правильного формата. Спасибо за помощь знаю, где пошло не так следующий код участника Понедельник Вторник Среда Thrusday Пятница Satday воскресенье Моя проблема заключается в цикл и как печатать события в определенный день. Может кто-нибудь, пожалуйста, в создании правильного формата. Спасибо за помощь знаю, где пошло не так следующий код участника Понедельник Вторник Среда Thrusday Пятница Satday воскресенье Моя проблема заключается в цикл и как печатать события в определенный день. Может кто-нибудь, пожалуйста, в создании правильного формата. Спасибо за помощь
Sandeep
1

голосов
0

ответ
109

Просмотры

Выделяя столбцы (массив массивов) - Advanced SQL зацикливание

Я пытался использовать имя, которое более точно описывает мой вопрос, но тзд сказал я ограничен 150 символов. В поисках помощи от кого-то, кто имеет передовые навыки SQL. В идеале я хочу сделать это в SQL, чтобы компьютер делать работу. Слишком много ручных манипуляций созрели с возможностью ошибок. Я уже искал для групп пользователей в рамках Google. Все электронные письма возвращаются говоря, что электронная почта больше не существует. Что я использую, как представляется, фирменная версия Dremel SQL / Google SQL, однако, кто-то опытный в Dremel SQL, вероятно, будет в состоянии вести меня в правильном направлении. ПРЕДПОСЫЛКИ ИНФОРМАЦИЯ: Натяжение столбца, столбец массива, который имеет другой массив (столбец заметок). Я думаю, может быть массив массивов? Я не понял, способ сделать то, что я пытаюсь сделать с Google или Dremel SQL еще. Так что сейчас, Я делаю это трудный путь. Как первоначально вытащил, данные выглядит следующим образом [{массив массивов}, {массив массивов}, {массив массивов} и т.д., повторить ...: Более конкретно: [{4 или более текстовых полей, которые могут также удерживать номера и разделенные запятыми}, {другой набор полей}, {другой набор полей} ...] IE (все это всего один столбец данных и сотни строк) [{ «создал»: «1540236216969», "заметки": бла ... бла ... бла», "original_text_length": 534, "user_email": "[email protected]", "user_shortname": "кто-то"}, { "создал": "1540236216969" , "записки": бла ... бла ... бла " "original_text_length": 1224, "user_email": "[email protected]", "user_shortname":" кто-то "}, {" создал ":" 1540236216969" , "ноты": бла ... бла ... бла», "original_text_length": 1664, "user_email": "[email protected]", "user_shortname": «кто-то»} ...] число этих различен для каждой строки вытащил и каждый из них имеет определенный ID # типичная строка данных: ID #, дата_начала END_DATE, некоторые другие поля, notes_ (поле массива) ЧТО Я делаю сейчас: SQL данные тянуть, экспорт в Google листы, сделать отдельные вкладки для различных столбцов массива. копирование столбца заметок (массив столбец холдинговых массивы) в отдельную вкладку в Google Таблицах, а затем Split Text To столбцов с использованием первой фигурной скобки «{», как separater. Вот где мой dillema есть. После того, как вытащил, Мне нужно разделить все эти столбцы снова отделить каждый из отдельных элементов в каждом массиве. Невозможно Разделить текст по столбцам снова со всеми из них подсвечивается. Я могу Разделить текст по столбцам снова по одному, но действительно будет боль, если я должен сделать это индивидуально для каждого столбца и каждой строки (сотни строк). Нужно найти способ автоматизировать это. Я также необходимо изменить каждый юниксовских даты, чтобы календарь дат в каждом массиве PLUS добавить строки в таблицу в зависимости от количества столбцов с первого раскола. Столбцы различны для каждой строки в зависимости от того, сколько нот, которые были добавлены. ИЛИ ... сделать это с SQL (который, как представляется, запатентованный тип SQL похож на NoSQL, но не то же самое). Я попытался с помощью синтаксиса для IBM SQL, Oracle SQL, SQL Server и другие нашли в Интернете, но ни одна работа. ИЛИ ЖЕ... сделать это с помощью петлевой функции в Google Таблицы. Возможно, вновь добавить его в базу данных в виде новой таблицы сразу оба набора массивов полностью распались. END РЕЗУЛЬТАТ ID #, date1, дата 2, первая создана дата (сейчас дата Unix), первая нота, первое другое поле, и т.д ... Затем добавить новую строку с таким же ID # сверху, date1 из строки выше, даты 2 из строки выше, следующий (вторая) дата создания (сейчас дата Unix), вторая ноты, вторые другие полей, и т.д ... Добавить новую строку ... 3-й набор заметок и т.д.
Rick P
1

голосов
1

ответ
29

Просмотры

Как проверить соседние индексы 2D-массив - Отелло

Просто чтобы быть ясно, я посмотрел на несколько проблем, подобных этим на переполнение стека и других веб-сайтов, прежде чем просить о помощи. Я также включил весь код ниже только в случае, если это может помочь любому понять проблему. В игре Отелло, также известный как Реверси, есть два игрока, которые используют плитки противоположных цветов. Игрок должен поместить плитку, так что рядом с плиткой противоположного цвета и противоположный цвет должен быть окружен плитке с обеих сторон в том же направлении. Например, если есть белая плитка слева от черной плитки, то другая черная плитка должна быть размещена на левой стороне белой плитки, так что окружают. Если плитка окружен он переворачивается. (Черный - белый - черный) -> (черный - черный - черный) Ближайший может произойти либо по горизонтали, по диагонали или по вертикали. У меня проблема м, имеющий, я не знаю, как проверить, все индексы и посмотреть, если они работают одновременно. Я попытался проверки значений, прилегающих к плитке противоположного цвета, проверяя все возможные значения рядом с ним. Это не работает должным образом, поскольку он не может убедиться, что плитка окружен с обеих сторон или применить к линии более одной плитки в ряду. / ** * Проверяет, если действительный ход может быть сделано в указанной OthelloCell * для данного игрока. * @Param х Горизонтальная координата значение в борту. * @Param уг Вертикальная координата значения в плате. * @Param bTurn Указывает текущий игрок, правда, для черного, ложь для белых * @return Возвращает истину, если действительный ход может быть сделано для этого игрока на этой позиции *, ложь в противном случае. * / Булево isValidMove общественного (целое х, внутр уг, булево bTurn) {длина = INT плата [0] .length; // проверяет, является ли плитка уже выбрана, не означает, что он больше не может быть выбран, если (совет [х] [уг] .hasBeenPlayed ()) {вернуться ложным; } Еще {/ * Для ЧЕРНЫЙ (рабочей) * / если (bTurn) {// проверка плитки на одну строку выше, если (х + 1 <длина && платы [х + 1] [уг] .getBlackStatus () == FALSE) { System.out.println ( «одна строка 1 и в том же столбце не работает»); возвращает истину; } Если (х + 1 <длина && плата [х + 1], [уг + 1] .getBlackStatus () == FALSE) {System.out.println ( "одна строка 1 и в правой колонке не работает «); возвращает истину; } Если (х + 1 <длина && плата [х + 1], [уг - 1] .getBlackStatus () == FALSE) {System.out.println ( "одна строка 1 и в левой колонке не работает «); возвращает истину; } // проверяет плитки влево и вправо, если (уг + 1 <длина && плата [х] [уг + 1] .getBlackStatus () == FALSE) {System.out.println ( "один в той же строке и в правая колонка не работает "); возвращает истину; } Если (уг> 1 && доска [х] [уг - 1] .getBlackStatus () == FALSE) {System.out.println ( "один в той же строке и в левой колонке не работает"); возвращает истину; } // проверяет плитки на одну строку ниже, если (х> 1 && плата [х - 1] [уг] .getBlackStatus () == FALSE) {System.out.println ( "Один 1 строку вниз и в том же столбце Безразлично «работа т"); возвращает истину; } Если (х> 1 && плата [х - 1] [уг + 1] .getBlackStatus () == FALSE) {System.out.println ( "Один 1 ряд вниз и в правой колонке не работает") ; возвращает истину; } Если (х> 1 && плата [х - 1] [уг - 1] .getBlackStatus () == FALSE) {System.out.println ( "Один 1 строку вниз и в левой колонке не работает") ; возвращает истину; }}} Вернуться ложным; } / ** * Проверяет, если действительный ход может быть сделан на указанном OthelloCell, в * определенном направлении (есть 8 возможных направлений). Они обозначены: * (1,1) является вверх и вправо * (1,0) является правильным * (1, -1) вниз и вправо * (0, -1) вниз * (-1, -1 ) это вниз и влево * (-1,0) остается * (-1,1) остается и до * (0,1) до * @param х горизонтальное значение в плате координат. * @Param уг Вертикальная координата значения в плате. * @Param я -1 остаюсь, 0 нейтрально, 1 верно, * @param J -1 вниз, - нейтрально, 1 вверх. * @Param bTurn Указывает текущий игрок, правда для черного, ложной белого. * @Return Возвращает истину, если это направление имеет части, чтобы перевернуть, иначе ложь. * / Общественного логический directionValid (целое х, внутр уг, Int я, Int J, булево bTurn) {возвращает истину; } Выше два метода у меня возникают проблемы с. общественный класс Отелло {/ ** Объект платы. Эта плата будет 8 х 8, и наполнена OthelloCells. * Ячейка может быть пустой, держать белую игру кусок, или черный игровой предмет. * / Частный OthelloCell [] [] доска; / ** Координаты активной части на доске. * / Частный ИНТ х, у; / ** Booleans о том, что мышь готова быть нажата, что * почернеет, чтобы переместить (ложь, если очередь белых), и что игра окончена. * / Частный логический mousePressReady, blackTurn, GameOver; / ** * Создает объект Отелло, с размером графического холста и 2D (8 х 8) массив * из OthelloCell, установка начальных значений. * / / * ПОЛНЫЙ * / общественный Отелло () {StdDraw. setCanvasSize (500650); StdDraw.setXscale (0,1); StdDraw.setYscale (0,1.3); StdDraw.enableDoubleBuffering (); Шрифт = новый шрифт ( "Arial", Font.BOLD, 30); StdDraw.setFont (шрифт); startBoard (); } / ** * Вызывается конструктор, или когда игрок нажимает кнопку «RESET», * инициализация игрового поля (8 х 8 массив из OthelloCell). * / / * ПОЛНОЕ * / общественного недействительными startBoard () {mousePressReady = blackTurn = TRUE; GameOver = ложь; плата = новый OthelloCell [8] [8]; для (INT I = 0; я <board.length, я ++) {для (Int J = 0, J <борту [я] .length; j ++) {доска [я] [J] = новый OthelloCell (I, J) ; }} Плата [3] [3] .playIt (); плата [3] [3] .setBlack (истина); плата [4] [4] .playIt (); плата [4] [4] .setBlack (истина); плата [4] [3] .playIt (); плата [4] [3] .setBlack (ложь); плата [3] [4] .playIt (); плата [3] [4] .setBlack (ложь); } / ** * Устанавливает и запускает игру Отелло. * / / * * ПОЛНЫЙ / государственной статической силы основных (String [] арг) {Отелло игра = новый Отелло (); game.run (); } / ** * Запускает бесконечный цикл, чтобы играть в игру. Даже если игра закончена, * цикл по-прежнему готов к пользователю нажать «RESET», чтобы играть снова. * / / * ПОЛНЫЙ * / общественного недействительными запуска () {делать {drawBoard (); countScoreAnddrawScoreBoard (); StdDraw.show (); StdDraw.pause (30); makeChoice (); GameOver = checkTurnAndGameOver (); } В то время как (истинно); } / ** * Рисует доска, в его текущем состоянии, в графическом интерфейсе. * / / * ПОЛНЫЙ * / общественного недействительными drawBoard () {StdDraw.setPenColor (новый цвет (150150150)); StdDraw.filledRectangle (0.5,0. 75,0.5,0.75); StdDraw.setPenColor (новый цвет (0,110,0)); StdDraw.filledSquare (0.5,0.5,0.45); StdDraw.setPenColor (новый цвет (0,0,0)); StdDraw.filledSquare (0.5,0.5,0.42); для (INT I = 0; г <board.length; я ++) {для (Int J = 0; J <борту [I] .length; j ++) {плата [I] [J] .drawCell (); }}} / ** * Ждет пользователя, чтобы сделать выбор. Пользователь может сделать шаг * размещая черную часть или белую часть (в зависимости от того, чья очередь * это), или нажать на кнопку «RESET» для сброса игры. * / / * ПОЛНЫЙ * / общественного недействительный makeChoice () {булева moveChosen = ложь; в то время как (moveChosen!) {если (mousePressReady && StdDraw.isMousePressed ()) {mousePressReady = ложь; двойная xval = StdDraw.mouseX (); двойная yval = StdDraw.mouseY (); если (xval> 0,655 && xval <0,865 && yval> 1,15 && yval <1,23) // Это если проверка на сброс. {StartBoard (); вернуть; } Если (xval <0,1 || xval> 0,9 || yval <0,1 || yval> 0,9) // Это если проверка для печати с доски. { вернуть; } INT tempx = (INT) (10 * (xval - 0,1)); INT tempy = (целое) (10 * (yval - 0,1)); если (isValidMove (tempx, tempy, blackTurn)) // Это если проверяет, является ли этот шаг является действительным. {Х = tempx; у = tempy; playAndFlipTiles (); blackTurn = blackTurn!; System.out. Println (х + "" + у); }} Если (! StdDraw.isMousePressed () &&! MousePressReady) // Это, если возвращает управление, когда будет отпущена кнопка мыши. {MousePressReady = TRUE; вернуть; } StdDraw.pause (20); }} / ** * Проверяет, если действительный ход может быть сделано в указанной OthelloCell * для данного игрока. * @Param х Горизонтальная координата значение в борту. * @Param уг Вертикальная координата значения в плате. * @Param bTurn Указывает текущий игрок, правда, для черного, ложь для белых * @return Возвращает истину, если действительный ход может быть сделано для этого игрока на этой позиции *, ложь в противном случае. * / Булево isValidMove общественного (целое х, внутр уг, логическое bTurn) {длина = INT доска [0]. длина; // проверяет, является ли плитка уже выбрана, не означает, что он больше не может быть выбран, если (совет [х] [уг] .hasBeenPlayed ()) {вернуться ложным; } Еще {} вернуться ложным; } / ** * Проверяет, если действительный ход может быть сделан на указанном OthelloCell, в * определенном направлении (есть 8 возможных направлений). Они обозначены: * (1,1) является вверх и вправо * (1,0) является правильным * (1, -1) вниз и вправо * (0, -1) вниз * (-1, -1 ) это вниз и влево * (-1,0) остается * (-1,1) остается и до * (0,1) до * @param х горизонтальное значение в плате координат. * @Param уг Вертикальная координата значения в плате. * @Param я -1 остаюсь, 0 нейтрально, 1 верно, * @param J -1 вниз, - нейтрально, 1 вверх. * @Param bTurn Указывает текущий игрок, верно для черного, ложь белого. * @Return Возвращает истину, если это направление имеет части, чтобы перевернуть, иначе ложь. * / общественные булевы directionValid (INT х, внутр уг, Int я, Int J, логическое bTurn) {возвращает истину; } / ** * Места игровой предмет на текущей ячейки для текущего игрока. Также переворачивает * соответствующие соседние части игры, проверяя 8 возможных направлений от * текущей ячейки. * / Общественного недействительными playAndFlipTiles () {плата [х] [у] .setBlack (blackTurn); плата [х] [у] .playIt (); // Заполняется вами. } / ** * Метод помощник для playAndFlipTiles. Зеркальные части в заданном направлении. В * направления заключаются в следующем: * (1,1) является вверх и вправо * (1,0) является правильным * (1, -1) вниз и вправо * (0, -1) вниз * (-1, -1) вниз и влево * (-1,0) остается * (-1, 1) влево и вверх * (0,1) до * @param х Горизонтальная координата значение в плате. * @Param уг Вертикальная координата значения в плате. * @Param я -1 остаюсь, 0 нейтрально, 1 верно, * @param J -1 вниз, - нейтрально, 1 вверх. * / Пустота flipAllInThatDirection общественного (целое х, внутр уг, Int я, Int J) {} / ** * Считает белые фигуры на доске, и черные фигуры на доске. * Отображение этих чисел к верхней части доски, для текущего состояния * доски. Также печатает ли это «почернеет'S» или «белеют'S» * или «GAME OVER». * / / * ПОЛНЫЙ * / общественного недействительный countScoreAnddrawScoreBoard () {INT whiteCount = 0, blackCount = 0; для (INT I = 0; г <board.length; я ++) {для (Int J = 0, J <доска [I] .length; j ++) {если (совет [I] [J] .hasBeenPlayed ()) {если (доска [I] [J] .getBlackStatus ()) {blackCount ++; } Еще {whiteCount ++; }}}} drawScoresAndMessages (whiteCount, blackCount); } / ** * Метод помощник для countScoreAnddrawScoreBoard. Рисует баллы * и сообщения. * @Param whiteCount Текущее кол-белых фигур на доске. * @Param blackCount Текущий подсчет черных фигур на доске. * / / * ПОЛНЫЙ * / общественного недействительный drawScoresAndMessages (интермедиат whiteCount, внутр blackCount) {StdDraw.setPenColor (новый цвет (0,0,0)); StdDraw.filledRectangle (0.41,1.05,0.055,0.045); StdDraw.filledRectangle (0.80,1.05,0.055,0.045); StdDraw.filledRectangle (0.76,1.19,0.11,0.045); StdDraw.setPenColor (новый цвет (255255255)); StdDraw.filledRectangle (0.41,1.05,0.05,0.04); StdDraw.filledRectangle (0.80,1.05,0.05,0.04); StdDraw.filledRectangle (0.76,1.19,0.105,0.04); StdDraw.setPenColor (новый цвет (0,0,0)); StdDraw.text (0.24,1.04, "BLACK"); StdDraw.text (0.41,1.04 "" + blackCount); StdDraw.text (0.63,1.04, "белые"); StdDraw.text (0.80,1.04 "" + whiteCount); StdDraw.text (0.76,1.18, "RESET"); если (GameOver) {StdDraw.text (0.34,1.18, "игра окончена"); } Еще если (blackTurn) {StdDraw.text (0.34,1.18, "почернеет'S"); } Еще {StdDraw.text (0.34,1.18, "белеют'S"); }} / ** * Проверяет, если черные могут играть. Проверяет, является ли белые могут играть. * Если ни один не может играть, игра окончена. Если черные не могут идти, а затем установить * blackTurn ложь. Если белые не могут идти, установить blackTurn истину. * @Return Возвращает истину, если игра закончена, иначе ложь. * / / * ПОЛНЫЙ * / общественного логического checkTurnAndGameOver () {булева whiteCanGo = ложь, blackCanGo = ложь; // Заполняется вами. вернуться ложным; }} / ** * Представляет одну ячейку в игре Отелло. По умолчанию, клетка черного цвета, а * не играл. Когда игра кусок «помещается» на борту, булево играл * устанавливается истина. Если игра кусок черного цвета, то логическое значение черного верно, и если * игра кусок белого цвета, то логическое значение черного ложно. РАСЧ х и у * представляют значение ячейки координат в пределах игрового поля, с нижним * влево на (0,0), а в верхнем правом углу на (7,7). * / Класс OthelloCell {/ ** Координаты активной части на доске. * / Частный ИНТ х, у; / ** Booleans с указанием, если часть была сыграна (или пусто), а также с указанием * если кусок черный (или белый) * / частный булево играл, черный; / ** * Создает объект OthelloCell, в данных парах координат. * @Param я Горизонтальная координата значения для ячейки на доске. * @Param J Вертикальная координата значения для ячейки на доске. * / / * ПОЛНЫЙ * / общественного OthelloCell (INT I, Int J) {играл = ложь; х = я; у = J; черный = TRUE; } / ** * Рисует ячейку на борту, в его текущем состоянии. * / / * ПОЛНЫЙ * / общественного недействительными drawCell () {StdDraw.setPenColor (новый цвет (0,0,0)); StdDraw.filledSquare (0,15 + 0,1 * х, 0,15 + 0,1 * у, 0.05); StdDraw.setPenColor (новый цвет (0,110,0)); StdDraw.filledSquare (0,15 + 0,1 * х, 0,15 + 0,1 * у, 0,048); если (играет) {для (INT I = 0; я
Rohith Vishwajith
1

голосов
0

ответ
85

Просмотры

Find differences between two multidimensional arrays in PHP

I have two multidimensional arrays that consist of arrays and objects. $new = [ 'a' => 'b', 'c' => (object)[ 'd' => [1 => 11, 2 => 12], 'f' => 'Hello', ], ]; $old = [ 'a' => 'b', 'c' => (object) [ 'd' => [1 => 11, 2 => 22], 'f' => 'Goodbye', ], ]; I'm trying to find differences between these two arrays by using below function, but the result seems wrong when two objects are compared together. How can I change this function to get correct output? function compare($array1, $array2) { $result = array(); foreach ($array1 as $key => $value) { if (is_array($value)) { if (array_key_exists($key, $array2)) { $recursiveArrayDiff = compare($value, $array2[$key]); if (count($recursiveArrayDiff)) { $result[$key] = $recursiveArrayDiff; } continue; } else { $result[$key] = $value; continue; } } if (is_object($value)) { if (isset($key, $array2) && is_object($array2[$key])) { $props = array_keys(get_object_vars($value)); foreach ($props as $prop) { if (isset($array2[$key]->{$prop})) { if (is_object($value->{$prop}) && is_object($array2[$key]->{$prop})) { $temp = compare($value->{$prop}, $array2[$key]->{$prop}); if (count($temp)) { $result[$key] = array($prop => $temp); } continue; } elseif (is_array($value->{$prop}) && is_array($array2[$key]->{$prop})) { $temp = compare($value->{$prop}, $array2[$key]->{$prop}); if (count($temp)) { $result[$key] = array($prop => $temp); } continue; } else { if ($value->{$prop} != $array2[$key]->{$prop}) { $result[$key] = array($prop => $value->{$prop}); } } } else { $result[$key] = array($prop => $value->{$prop}); } } } } if ($value != $array2[$key]) { $result[$key] = $value; } } return $result; } The correct and wrong outputs are as follows: //correct output Array ( [c] => stdClass Object ( [d] => Array ( [2] => 12 ) [f] => Hello ) ) //wrong output Array ( [c] => stdClass Object ( [d] => Array ( [1] => 11 [2] => 12 ) [f] => Hello ) )
F.Ndr
1

голосов
1

ответ
42

Просмотры

Как удалить элемент из двумерном полукокса массива указатель [закрыт]

Я работаю с двумерный массив символов указателем, другими словами, массив строк массивов. Этот указатель находится внутри структуры, и я пытаюсь удалить массив строк. Другими словами, если у меня есть следующий массив: {{ «Foo», «Бар»}, { «Баз», «Плата»}, { «Var», «Бар»}} И я пытаюсь удалить средний массив {{ «Foo», «Бар»}, { «вар», «Бар»}} на это структура следующую структуру данных {INT размер; символ (* элементы) [10] [64]; } Я пытался перебирать массив и переместить на первые позиции один назад, следующим образом (предположим, что я пытаюсь устранить позиции 1) INT positionInArray = 1; // Предположим, что структура данных для заполнения (Int х = positionInArray; х <данных-> размер; х +) {(* (* данных-> предметы [х])) = (* (* данных-> пунктов [х + 1])); } Я не уверен, что это правильный путь, и, очевидно, я не в состоянии удалить элемент.

Просмотр дополнительных вопросов