Массив $arrtxt сравнивается по значению с массивом $new по ключу который также содержит в себе массив с ключами и после рандомно выводится рядом со схожим значением из массива $arrtxt но почему-то иногда результат пустым выводится, а если обновить страницу то результат отображается. В чем кроется причина понять никак не могу.
Вот сам код
$srt = 'Я навестил Ленина в мавзолее';
$arr = explode(' ', $srt);
$a = $arr;
$tmp = null;
$b = array_reduce($a, function($res, $el) use (&$tmp) {
if ($tmp) {$el = "$tmp $el"; $tmp = null;}
if (strlen($el)<=2) $tmp = $el;
else $res[] = $el;
return $res;
}, array());
if ($tmp) {$b[] = $tmp;}
$arrtxt = $b;
$new = array(
'Я навестил' => array('Я наведал', 'Я постетил'),
'в мавзолее' => array('в кремлевском мавзолее', 'в московском мавзолее')
);
$result = array_intersect_key($new, array_flip($arrtxt));
foreach($result as $key=>$item){
echo $key .' <b>похоже на</b> '.$item[rand(0, count($item))].'<br>';
}
Замените:
$item[rand(0, count($item))]
На:
$item[array_rand($item)]
$item[rand(0, count($item))]
- Вот тут кроется причина.
У вас в массиве 2 значения, собсна count($item)
выдаст 2. Получается rand(0, 2)
- а это уже 3 значения.
Нужно как-то так: [rand(0, (count($item)-1))]
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Использую codeigniter 3И мне нужно сделать отправку с формы смс на почту @gmail
Есть числа со степенью в таком формате 2401E-5 Как их можно преобразовать в десятичные числа если степени будут постоянно меняться?
Возможно ли в RedBeanPHP установить несколько подключений к БД? Пример кода:
Подскажите как можно в php реализовать выделение текста жирным начертанием в сучайном порядке не более 3 строк в тексте