- Поисковые системы
- Практика оптимизации
- Трафик для сайтов
- Монетизация сайтов
- Сайтостроение
- Социальный Маркетинг
- Общение профессионалов
- Биржа и продажа
- Финансовые объявления
- Работа на постоянной основе
- Сайты - покупка, продажа
- Соцсети: страницы, группы, приложения
- Сайты без доменов
- Трафик, тизерная и баннерная реклама
- Продажа, оценка, регистрация доменов
- Ссылки - обмен, покупка, продажа
- Программы и скрипты
- Размещение статей
- Инфопродукты
- Прочие цифровые товары
- Работа и услуги для вебмастера
- Оптимизация, продвижение и аудит
- Ведение рекламных кампаний
- Услуги в области SMM
- Программирование
- Администрирование серверов и сайтов
- Прокси, ВПН, анонимайзеры, IP
- Платное обучение, вебинары
- Регистрация в каталогах
- Копирайтинг, переводы
- Дизайн
- Usability: консультации и аудит
- Изготовление сайтов
- Наполнение сайтов
- Прочие услуги
- Не про работу
VK приобрела 70% в структуре компании-разработчика red_mad_robot
Которая участвовала в создании RuStore
Оксана Мамчуева
Как снизить ДРР до 4,38% и повысить продажи с помощью VK Рекламы
Для интернет-магазина инженерных систем
Мария Лосева
Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий
<?php $arr = file("C:/content/file.txt"); $keys = array_rand($arr, 6); foreach ($keys as $key) { printf($arr[$key]); } ?>Данный код берёт рандомно 6 строчек из file.txt
Но когда в file.txt меньше 6 строк он выдаёт ошибку.... Нужно чтобы он работал с меньшем количеством строк, но при этом брал максимум 6 (и брал всегда максимум когда он есть, когда их нету, брал столько сколько есть). Спасибо
$num=6;// количество рандомных ключей массива$cnt=count($arr);// размер массива
if($num>$cnt)$num=$cnt;
$keys = array_rand($arr,$num);
<?php
$mass=file('file.txt', FILE_IGNORE_NEW_LINES | FILE_SKIP_EMPTY_LINES);
shuffle($mass);
$mass=array_slice($mass, 0, 6);
print_r($mass);
Опередил меня, ну тогда получифашистгранату 🤣
А если файл на несколько гигов - зачем его весь читать и смешивать?
Вариант:
Опечатка у меня
if ($result === '' && count($accum) > 0) {$index = array_rand($accum);
$result = $accum[$index];
}
конечно же из accum
Вариант:
Вот поэтому я люблю пайтон - все проще и лаконичнее)))
Вот поэтому я люблю пайтон - все проще и лаконичнее)))
Хм. если я правильно понял это аналог не моего скрипта. Здесь так же читается весь файл. Причем явно надо именно указать что надо разнести в массив построчно. А файл ведь может и несколько гигабайт и терабайт.
Может тут, по крайней мере, не просто splitlines а регуляркой взять, чтоб не пыталось массив на 100500 элементов создавать
Т.е., на мой взгляд, даже скрипт великого разработчика фреймворков выглядит лаконичнее (хотя там есть еще возможность написать лаконичнее - правда, по сути, за счет сахара)
Хм. если я правильно понял это аналог не моего скрипта.
вот аналог
все равно короче)