- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
Тренды маркетинга в 2024 году: мобильные продажи, углубленная аналитика и ИИ
Экспертная оценка Адмитад
Оксана Мамчуева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
function cikl(){ $data = file("random.txt"); $c=5; $out = rand(1, count($data) - $c); $sad=$out+$c; for($i = $out; $i < $sad; $i++) { echo do_shortcode ( $data[$i]); } } cikl();Подскажите пожалуйста, код который сверху, отбирает случайные 5 строк из файла и выводит их через функцию шорт-кодов. Но проблема в том, что данные выводятся не "рандом", а построчно сверху вниз. Т.е:
1,2,3,4,5
3,4,5,6,7
20,21,22,23,24
Можно ли это исправить, или нужен другой принцип отбора данных из массива?
отбирает случайные 5 строк из файла
Не случайные 5 строк, а случайный фрагмент из последовательных 5 строк.
данные выводятся не "рандом", а построчно сверху вниз
Это разные сущности. Типа "кошки попадаются не пушистые, а серые".
flash12320 :
for($i = $out; $i < $sad; $i++) { echo do_shortcode ( $data[$i]); }
Вы не выводите сразу. Сначала в массив отправьте эти значения, а потом этот массив перемешайте.
Или вам надо вообще в принципе из файла разные значения взять? Если так, то можно просто перемешать весь массив и вывести столько значений, сколько надо последовательно.
GPT такие вопросы задавайте уже!
function getRandomLines($data, $c) {
$totalLines = count($data);
if ($c >= $totalLines) {
// Если указанное количество строк ($c) больше или равно общему количеству строк ($totalLines),
// выводим все строки из массива $data.
foreach ($data as $line) {
echo $line;
}
} else {
$randomIndexes = array_rand($data, $c);
foreach ($randomIndexes as $index) {
echo $data[$index];
}
}
}
$data = file("random.txt");
$c = 5;
getRandomLines($data, $c);
А можно свои 5 копеек? Без GPT и его говно кода. Особенно прикольно, что если недостаточно строк, то мы будем выводить по порядку, просто текст. Чего?!
<?php function cikl($file,$cnt=5){ if (file_exists($file)) { $data = file($file, FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES); if ($data && $cnt) { $i=0; shuffle($data); $data_count=count($data); if ($cnt>$data_count) { $cnt=$data_count; } while($i!=$cnt) { echo do_shortcode ( $data[$i]); $i++; } } } } cikl('diff1.txt',10);