vantala

Рейтинг
103
Регистрация
22.09.2006
siv1987:
(хз, может вы специально убрали оттуда квантификаторы)

Специально, пытался упростить выражение и поймать хоть что-то, но даже это мне не удалось :(

Не претендую на знание регулярок, но читать-править могу более-менее нормально, а вот самому написать что-то комплексное - как правило проблема.

siv1987:
Хотя да, чтобы поддерживать мой вариант нужно иметь представления о работе с DOM моделью, хотя бы из javascript.

Чего у меня, как вы догадались, нет. Я в основном программирую математические расчеты, когда в скрипте миллионы операций вычисления, на скорость приходится обращать внимание.

siv1987:
Скорость выполнения в парсинге далеко не самое главное, потому что обычно парсинг на "лету" встречается на часто

Эта штука как раз должна парсить на лету, а учитывая примерно 5000 страниц в прогоне и возможное распараллеливание, скорость явно не последнее место занимает в приоритетах.

В общем, здесь она важна :)

siv1987:
Тест на производительность понятие субъективное

Не могу согласиться. Выбор технологии - вот это понятие субъективное, например, лично для меня легче поправить работающую регулярку, чем ваш код. Но я прекрасно понимаю, что это, возможно, от недостатка образованности - все-таки программирование у меня непрофильное занятие, а раз в год вникать во все детали непросто. Поэтому для оценки применяется единственный объективный критерий - скорость выполнения скрипта.

Ладно, конкурс так конкурс...

Первые два варианта по праву первенства уже присоединились к пьянке.

По остальным вариантам будет проведен тест на производительность.

Если предложенное решение быстрее ранее предлагавшихся, так и быть, проставляюсь еще и победителю 🍻

Окончание приема 19 марта 2015 23:59 МСК, оглашение итогов 20 марта.

Не ожидал такого отклика, спасибо всем откликнувшимся!

senks777:
vantala, обращайтесь ели нужно.. рыба к пиву есть..

Спасибо, это идеальный вариант, похоже... номер WMR киньте в личку 🍻

---------- Добавлено 16.03.2015 в 15:02 ----------

jkm:
Могу предложить такой вариант разбора таблицы. Собираем содержимое всех ячеек. Полученный одномерный массив делим на части по количеству столбцов в таблице.

Интересное решение, возьму на вооружение, спасибо! Номер WMR киньте в личку 🍻

Пытался настроить вывод на киви, но не приходит смс на телефон +7-925-140****.

Повторил через 2 дня - опять не приходит.

На этот номер с киви смски доходят нормально.

На сайте не нашел как обратиться с этой проблемой в техподдержку, как вообще можно связаться с техподдержкой САПЕ по этому вопросу?

не помню, начальный слеш попадает в апач или нет? попробуйте варианты

Redirect 301 /ru/$ http://www.domain.com.ua/

Redirect 301 ^/ru/$ http://www.domain.com.ua/

Redirect 301 ^ru/$ http://www.domain.com.ua/

один из них должен работать правильно

блин, ну я и тупой временами...

спасибище!

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

Мне же необходимо, чтобы с той же логикой вносились только значения вложенных массивов, ключи которых перечислены в $varorder, причем в порядке, в котором они там перечислены. Ваш вариант работает так, как будто $varorder=array(0,1,2.....);

т.е.

значение $aDATA[0][2] попадает в $aDataOut[$aDATA[0][0]][$aDATA[0][1]][]

значение $aDATA[1][2] попадает в $aDataOut[$aDATA[1][0]][$aDATA[1][1]][]

значение $aDATA[2][2] попадает в $aDataOut[$aDATA[2][0]][$aDATA[2][1]][] и т.д.

требуется сделать так, чтобы

при $varorder=array(2,0,1);

значение $aDATA[0][1] попадает в $aDataOut[$aDATA[0][2]][$aDATA[0][0]][]

значение $aDATA[1][1] попадает в $aDataOut[$aDATA[1][2]][$aDATA[1][0]][]

значение $aDATA[2][1] попадает в $aDataOut[$aDATA[2][2]][$aDATA[2][0]][] и т.д.

при $varorder=array(2,3); //в тестовых данных правда нет $aDATA[0][3] но будут :)

значение $aDATA[0][3] попадает в $aDataOut[$aDATA[0][2]][]

значение $aDATA[1][3] попадает в $aDataOut[$aDATA[1][2]][]

значение $aDATA[2][3] попадает в $aDataOut[$aDATA[2][2]][] и т.д.

$varorder может быть, например, array(2,3,5,0,16);

Эталонный результат при $varorder=array(0,1,2);

Array

(
[a] => Array
(
=> c
[bb] => cc
)

[aa] => Array
(
[bb] => Array
(
[0] => ccc
[1] => cccc
)

)

)

но если поменять $varorder=array(0,1,2); на $varorder=array(2,0,1); правильный результат будет таким:

Array

(
[c] => Array
(
[a] => Array
(
[0] => b
)

)

[cc] => Array
(
[a] => Array
(
[0] => bb
)

)

[ccc] => Array
(
[aa] => Array
(
[0] => bb
)

)

[cccc] => Array
(
[aa] => Array
(
[0] => bb
)

)

)

$varorder=array(2,0); правильный результат

Array

(
[c] => Array
(
[0] => a
)

[cc] => Array
(
[0] => a
)

[ccc] => Array
(
[0] => aa
)

[cccc] => Array
(
[0] => aa
)

)

mozart007, спасибо огромное, работает на ура, но проходит по порядку.

Не подскажите, как к ней можно прикрутить $varorder=array(0,1,2); ?

это порядок и перечень ключей для $data, мне ведь нужно не все а выборочно в соответствии с этим массивом. Который может быть и $varorder=array(2,0); например... не могу сообразить :(

Всего: 209