Не работает array_unique

256
02 января 2018, 16:25

$mix - массив объединяет массивы со словами, разделенными по пробелам. array_unique в данном случае не работает и на выходе слова дублируются.

$mix = array_merge($arr_mix_1, $arr_mix_2, $arr_mix_3);
$mixed = array_unique($mix);
shuffle($mixed);
$result = implode(' ', $mixed);

Хорошо, я знаю, что как по учебнику работает. А у меня в коде не работает. Надо было сразу весь код выкладывать на оценку.

<?php
$rand_a = rand(700,900);
$rand_b = rand(500,700);
$rand_c = rand(30,40);
$arr_1 = explode(' ', file_get_contents('data/big_file.txt'));
shuffle($arr_1);
$a = -1;
while (++$a <= $rand_a) {
 $arr_mix_1[] = $arr_1[$a];
}
$arr_2 = explode(' ', file_get_contents('data/key_file.txt'));
shuffle($arr_2);
$b = -1;
while (++$b <= $rand_b) {
 $arr_mix_2[] = $arr_2[$b];
}
$arr_3 = explode(' ', file_get_contents('data/must_have_file.txt'));
shuffle($arr_3);
$c = -1;
while (++$c <= $rand_c) {
 $arr_mix_3[] = $arr_3[$c];
}
$mix = array_merge($arr_mix_1, $arr_mix_2, $arr_mix_3);
$mixed = array_unique($mix);
shuffle($mixed);
$result = implode(' ', $mixed);
?>
Answer 1

Попробуйте удалять символы перевода строки. И ещё я немного сократил ваш код:

$arr_mix_1 = get_contents('data/big_file.txt', 700, 900);
$arr_mix_2 = get_contents('data/key_file.txt', 500, 700);
$arr_mix_3 = get_contents('data/must_have_file.txt', 30, 40);
$mixed = array_unique(array_merge($arr_mix_1, $arr_mix_2, $arr_mix_3));
shuffle($mixed);
$result = join(' ', $mixed);
echo $result;

function get_contents($file, $min, $max) {
    $rand = rand($min, $max);
    $content = file_get_contents($file);
    $words = explode(' ', str_replace(PHP_EOL, ' ', $content));
    shuffle($words);
    $result = [];
    $a = -1;
    while (++$a <= $rand) {
        $result[] = $words[$a];
    }
    return $result;
}
READ ALSO
Правильное построение where для маршрутов laravel

Правильное построение where для маршрутов laravel

Всем приветЕсть следующий маршрут:

205
Минимально необходимые параметры для PHP-FPM?

Минимально необходимые параметры для PHP-FPM?

В документации NGINX указано, что минимально необходимые параметры это:

240
Не выполняется запрос к БД через PHP

Не выполняется запрос к БД через PHP

Привет)Никак не могу понять почему не выполняется запрос,сама суть что этот пример запроса взят с учебника по phpВ браузере пишет Ошибка при...

264
Получить только путь

Получить только путь

Есть строка <img src="images/stories/2017/12/2-51jpg">

311