Member 13648367 Ответов: 2

Нет дублирования текста в array_rand


ХЭлло, как сделать так, чтобы текст не дублировался? :))

function getKlausimaiRandom()
{
    $arrQuote = array();
    $arrQuote[0] = '
    <form method="post" action="" class="input_form">
        <h2>Ar var yra geras dalykas</h2>
        <input type="text" name="klausimas_1">
        <button type="submit" name="submit_1">Add Task</button>
    </form> ';
    $arrQuote[1] = '
    <form method="post" action="" class="input_form">
        <h2>Ar int yra geras dalykas</h2>
        <input type="text" name="klausimas_2">
        <button type="submit" name="submit_2">Add Task</button>
    </form> ';
    return $arrQuote[array_rand($arrQuote)];
}


Что я уже пробовал:

..............................................

Mohibur Rashid

Что ожидается и что происходит?

2 Ответов

Рейтинг:
0

Bryian Tan

Исходя из того, что представлено, не уверен, что это возможно, но вы можете написать код для возврата уникального значения

 $arrQuote = array();
    $arrQuote[0] = '111';
    $arrQuote[1] = '222';
    $arrQuote[2] = '222';
    
    // Deleting the duplicate items

    $result = array_unique($arrQuote);

    print_r($result);

return $result[array_rand($result)]; //return 111 or 222


Выход: Array ( [0] => 111 [1] => 222 )

Как удалить повторяющиеся значения из массива в PHP[^]


Рейтинг:
0

W∴ Balboos, GHB

Поскольку вы используете PHP, вы можете использовать трюк, недоступный в большинстве языков, - создание элементов массива, индексируемых "произвольно" во время выполнения.


При создании значения создайте элемент массива, индексированный с этим значением. Но, прежде чем создать значение, вы проверяете его, чтобы определить, существует ли оно. Если он уже существует, вам не нужно сохранять (хотя сохранение не имеет значения, так как значение одно и то же).

$arrQuote[111] = '111';
$arrQuote[222] = '222';

если у вас есть определенный размер для массива, проверьте его длину и прекратите производить записи, когда у вас их будет достаточно.

Кроме того, помните, что с PHP вы можете иметь символьные индексы - так что он также работает с Альфа-строками. Если важен порядок генерации, создайте каждый элемент массива в виде двумерного значения, одно из значений которого является порядком создания, а другое - значением.

Пройдите через массив с помощью foreach (), и индексы не имеют значения, а если вам нужна специальная сортировка, отсортируйте массив перед анализом foreach ().