Здравствуйте, прошу совета. Имеет место быть таблица, сделанная руками пользователя, пользователь находит значение нужной ячейки, оперируя двумя значениями двух осей координат: вертикальной и горизонтальной. Иными словами, конь на e2, ферзь d4, etc. Возникла необходимость сделать на основе таблицы php-скрипт: массив, содержащий данные таблицы , и плюс парочку циклов, предназначенных перебирать элементы массива, в зависимости от вводимых опций поиска. Подскажите, как оптимально реализовать задачу? Первое, что пришло в голову - массив, разбитый на равные части array_chunk, второе - ассоциативный массив со сложными индексами... теряюсь среди возможностей. Как наиболее правильно и оптимально подойти к решению? Надеюсь, сформулировал более-менее внятно, данные из таблицы буду перегонять в массив сугубо руками, здесь нет вопроса из разряда "из екселя - в массив".
Данные таблицы - обычные стринги. Горизонтальная ось - значения, вертикальная - временные промежутки. Все просто. Задача - получить в переменную значение единственной ячейки (элемента массива), находящейся на пересечении двух координат.
ну и в чем проблема-то? выбрал нужную строку, взял нужный элемент массива. В чем сложность? Это ж простейшая операция. Не понятно с чем именно ты испытываешь трудности.
Представь шахматную доску, на которой нет свободных клеток: вся установлена фигурами. Я хочу узнать, какая фигура находится на клетке с5, и вижу, что это слон. Ок. Теперь я делаю массив из 64 элементов, и объявляю две переменные - $h = 'c'; $w = '5'; вопрос в том, как оптимально организовать массив под эту задачу, чтобы в третьей переменной получать на выходе "слона", основываясь на первых двух?. Также следующее условие: совсем не хочется присваивать каждому элементу массива уникальный индекс (с5, h8, g3), т.к. элементов массива здесь не 64, а несколько сотен, и все это пришлось бы делать руками. Неужели и сейчас непонятно объяснил?
PHP: $cells[$h][$w] это называется двумерный массив. как пример - таблица. --- Добавлено --- ты объяснил понятно ещё в первом сообщении не понятно с чем конкретно у тебя сложность
Вот с этим: PHP: <?php $arr = array( array(‘Вася’, ‘слесарь’, 2500 ), array(‘Миша’,’строитель’, 3000), array(‘Андрей’, ‘шофер’, 2700)); for ($i = 0; $i < 3; $i++) { for ($j=0; $j <3; $j++) { echo $arr[$i][$j]; } } ?> как получить PHP: $cells[$h][$w] из этого массива ? предположим, пересечение второй строчки со вторым столбцом, т. е. $h = '2'; $w = '2'; ? Я правда не понимаю.
Сорь, еще вопрос... без проблем получаю значение "ячейки" в двухмерном массиве по двум индексам. Но ведь $h и $w это не индексы, это изначально метки двух осей координат - вертикальной и горизонтальной. Как привязать их к индексам? - чтобы можно было обратиться к элементу массива таким образом: $cells[$h][$w] ? необходимо сделать ассоциативный массив?
если хочешь, чтобы ключем в массиве были слова - то да, будет ассоциативный массив. Если ты берёшь из бд, то там будут номерки или слова или слова с номерками - всё это в массив загоняй. У тебя сложность, как при взаимодействии с пользователем установить куда он тыкнул? Надо в ячейку сохранять обе координаты как-то. А javascript поможет их выудить и сделать ajax-запрос =)
Написал обработчик, когда передаю ему данные через GET, попросту подставляя в адресной строке значения, позволяющие доставать из "клеток" двухмерного массива их содержание - все работает безукоризненно. Но когда те же самые данные в тот же самый обработчик отдаю аяксом из js (через GET или POST, все равно), скрипт сходит с ума: по первому столбцу находит значения, по остальным нет. Или как-то еще, не могу понять и уложить в систему. В чем разница-то? одни и те же ведь данные.... подскажи где копать. Вот так передаю данные из js: Код (Javascript): <script> function dosubmit( ) { new Ajax.Updater( 'result', 'add.php', { method: 'post', parameters: $('myform').serialize() } ); $('myform').reset(); } </script> Да, и к к формочке подключен prototype.js.
это тебе пора осваивать дебаг. Хрен знает почему он глючит, если вручную работает. Даже если я тебе подскажу, то в следующий раз опять придётся подсказывать. что я предлагаю. Т.к. ты знаешь, что алгоритм работает, что ты правильно почти всё понял, но где-то что-то упустил, то я расскажу, как искать, а ты постарайся найти где грабли. var_dump() как сиюминутное решение, xdebug как правильное вперед. Пиши как че.