Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   массив в ПХП, обработка в JS. (https://javascript.ru/forum/events/31629-massiv-v-pkhp-obrabotka-v-js.html)

Скоробогатов 14.09.2012 23:39

массив в ПХП, обработка в JS.
 
(javascript не знаю совсем :( )

Есть кусок PHP кода, в котором описаны массивы:
$words=array(полтыщи значений);
$urls=array(полтыщи значений);

В HTML коде есть <img id="img1" src="">

Есть JS-скрипт, который анализирует структуру документа, получившуюся с учетом других JS-скриптов, и в переборе тегов (теги называются "yatag") находит все с определенным классом (назовем его "nuzhnyjclass").

Что хочется:
чтобы при вышеописанном переборе тегов содержимое найденного тега (там короткий текст) разбивалось на слова (наверное, с помощью .split(' ')), и каждое слово анализировалось на предмет вхождения в тот РНР массив $words. А если вхождение находилось, скажем, в элементе $words[$i], то атрибуту src вышеобозначенного <img id="img1"> присваивалось значение из массива $urls тоже с индексом $i.

Правильно ли сначала все массивы загнать в JS как-то так:
<?PHP
for ($i=0;$i<sizeof($words);$i++)
{
?>
<script type="text/javascript">
jswordsarray.push("$words[$i]");
jsurlsarray.push("$urls[$i]");
</script>
<?PHP
}
?>

...а потом уже анализировать всё в JS?

devote 15.09.2012 00:11

Цитата:

Сообщение от Скоробогатов
Правильно ли сначала все массивы загнать в JS как-то так:

для этого придумали json_encode в PHP что бы не парится с массивами и объектами..
<script type="text/javascript">
    var jswordsarray = <?php echo json_encode( $words );?>
    var jsurlsarray = <?php echo json_encode( $urls );?>
</script>
а в JS с ними работать как с объектами. А если нужно перебрать то юзаем в JS:
for( var key in jswordsarray ) {
    if ( Object.prototype.hasOwnProperty( key ) ) {
        alert( "key: " + key + ", value: " + jswordsarray[ key ] );
    }
}

melky 15.09.2012 00:52

Цитата:

Сообщение от Скоробогатов
...а потом уже анализировать всё в JS?

как проверять вхождение значения в массив будете?

тыща проходов для одной проверки - жырно.

Скоробогатов 15.09.2012 01:22

Цитата:

Сообщение от melky (Сообщение 204759)
тыща проходов для одной проверки - жырно.

Так и собирался. А какие варианты?

melky 15.09.2012 02:37

Цитата:

Сообщение от Скоробогатов (Сообщение 204762)
Так и собирался. А какие варианты?

в пхп выводить в отсортированном виде, а в JS проверять вхождения с помощью бинарного поиска.


Часовой пояс GMT +3, время: 11:24.