Рандомная замена

253
06 сентября 2018, 23:00

Массив $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>';
}
Answer 1

Замените:

$item[rand(0, count($item))]

На:

$item[array_rand($item)]
Answer 2

$item[rand(0, count($item))] - Вот тут кроется причина.

У вас в массиве 2 значения, собсна count($item) выдаст 2. Получается rand(0, 2) - а это уже 3 значения.

Нужно как-то так: [rand(0, (count($item)-1))]

READ ALSO
Отправка смс сайта на почту используя Codeigniter 3

Отправка смс сайта на почту используя Codeigniter 3

Использую codeigniter 3И мне нужно сделать отправку с формы смс на почту @gmail

199
php преобразование чисел со степенью

php преобразование чисел со степенью

Есть числа со степенью в таком формате 2401E-5 Как их можно преобразовать в десятичные числа если степени будут постоянно меняться?

209
Несколько подключений к БД в RedBeanPHP

Несколько подключений к БД в RedBeanPHP

Возможно ли в RedBeanPHP установить несколько подключений к БД? Пример кода:

253
Случайный strong

Случайный strong

Подскажите как можно в php реализовать выделение текста жирным начертанием в сучайном порядке не более 3 строк в тексте

242