За последние 24 часа нас посетили 20337 программистов и 1082 робота. Сейчас ищут 744 программиста ...

использование трёх массивов сразу

Тема в разделе "Сделайте за меня", создана пользователем badphpuser, 13 ноя 2018.

  1. badphpuser

    badphpuser Новичок

    С нами с:
    10 ноя 2018
    Сообщения:
    3
    Симпатии:
    0
    Доброго времени суток тому кто заглянул! Пожалуйста подскажите, мне надо рэндомно проставлять титлы к ссылкам и название самих ссылок, т.е. есть пару файлов со ссылками, а-ля link1.txt link2.txt и link3.txt соответственно. В другом файле у меня title.txt у меня лежат все титлы для этих ссылок. В третьем файле name.txt у меня лежал названия для этих ссылок.
    Для html это соответственно, чтобы работала конструкция
    HTML:
    1. <a href="http://сайт.рф/ссылка1.html" title="Подсказка для ссылки">    Название ссылки   </a>
    В случае если мне надо вывести одну ссылку, то тут всё просто получается, но когда мне надо вывести к примеру 2 ссылки, то уже сталкиваюсь с неработоспособностью скрипта, так как не могу соединить массивы
    Пока что дошел до такого:
    PHP:
    1. <?php
    2. $a = ['link1.txt', 'link2.txt', 'link3.txt'];
    3. $b = file('title.txt');
    4. $c = file('name.txt');
    5. $title = $b[ array_rand($b) ];
    6. $name = $c[ array_rand($c) ];
    7. $sitemap = $a[mt_rand(0, count($a) -1)];
    8. $data = file($sitemap);
    9. $mx = 2;
    10. $rand_links = array_rand($data, $mx);
    11. foreach ( $rand_links as $link )
    12. echo "<a href = $data[$link] title="$title">$name</a>";
    13. ?>
    вообщем не получается как уже только не пробовал, помогите, можно конечно вручную забить конструкцию, но если ссылок будет к примеру 10000, то уж точно не захочется забивать в ручную
     
  2. MRSgiba

    MRSgiba Активный пользователь

    С нами с:
    22 дек 2017
    Сообщения:
    200
    Симпатии:
    32
    @badphpuser Не понял что ты хочешь. Вот тебе рабочий вариант на 10000, нужно по количеству ссылок замени на foreach, как получить массив из файла писать не буду, т.к. этот вопрос поднимается почти в каждой теме
    Код (Text):
    1. <?php
    2.  
    3. $links = ['link1.txt', 'link2.txt', 'link3.txt', 'link4.txt', 'link5.txt', 'link6.txt'];
    4. $titles = ['title1.txt', 'title2.txt', 'title3.txt'];
    5. $names = ['name1.txt', 'name2.txt', 'name3.txt'];
    6.  
    7. for ($i = 1; $i<10000; $i++) echo "<a href = '".$links[mt_rand(0, count($links) - 1)]."' title='".$titles[mt_rand(0, count($titles) - 1)]."'>".$names[mt_rand(0, count($names) - 1)]."</a>\r\n";
    8.  
    9. ?>
     
  3. Catrinblaidd

    Catrinblaidd Новичок

    С нами с:
    21 окт 2018
    Сообщения:
    13
    Симпатии:
    7
    PHP:
    1. $files = ['link1.txt', 'link2.txt', 'link3.txt'];
    2. $links = file($files[array_rand($files)]);
    3. foreach ($links as $link) {
    4.   if (empty($titles)) {
    5.     $titles = file('title.txt');
    6.     shuffle($titles);
    7.   }
    8.   if (empty($names)) {
    9.     $names = file('name.txt');
    10.     shuffle($titles);
    11.   }
    12.   $title = array_shift($titles);
    13.   $name = array_shift($names);
    14.   echo "<a href=\"$link\" title=\"$title\">$name</a>";
    15. }
    с большими файлами лучше так не делать