Files
php-doc-ru/reference/array/functions/array-rand.xml

165 lines
5.9 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 4a1dedc24b1e085f298ab1d5dadefe306373691b Maintainer: shein Status: ready -->
<!-- Reviewed: no -->
<refentry xml:id="function.array-rand" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>array_rand</refname>
<refpurpose>Выбирает один или несколько случайных ключей из массива</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<type class="union"><type>int</type><type>string</type><type>array</type></type><methodname>array_rand</methodname>
<methodparam><type>array</type><parameter>array</parameter></methodparam>
<methodparam choice="opt"><type>int</type><parameter>num</parameter><initializer>1</initializer></methodparam>
</methodsynopsis>
<para>
Функция выбирает один или несколько случайных элементов из массива и возвращает
ключ, или ключи, случайных элементов.
</para>
&caution.cryptographically-insecure;
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>array</parameter></term>
<listitem>
<para>
Непустой входной массив.
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>num</parameter></term>
<listitem>
<para>
Определяет сколько элементов выберет функция. Количество
элементов должно быть больше нуля и меньше или равно количеству
элементов массива <parameter>array</parameter>.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Функция <function>array_rand</function> возвращает ключ случайного элемента,
когда выбирает только один элемент. В остальных случаях функция возвращает
массив ключей случайных элементов. Это сделано так, чтобы
функция могла выбрать из массива как случайные ключи, так и случайные значения.
Функция, когда возвращает массив ключей, вернёт ключи в порядке, в котором
их объявили в исходном массиве.
</para>
</refsect1>
<refsect1 role="errors">
&reftitle.errors;
<para>
Функция выбросит исключение <classname>ValueError</classname>,
если массив <parameter>array</parameter> пуст
или значение параметра <parameter>num</parameter> выходит за пределы диапазона.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<para>
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
Теперь функция <function>array_rand</function> выбрасывает
исключение <classname>ValueError</classname>,
если значение параметра <parameter>num</parameter> выходит
за пределы диапазона; раньше функция выдавала ошибку уровня
<constant>E_WARNING</constant> и возвращала значение &null;.
</entry>
</row>
<row>
<entry>8.0.0</entry>
<entry>
Теперь функция <function>array_rand</function> выбрасывает
исключение <classname>ValueError</classname>,
если массив <parameter>array</parameter> пуст; раньше
функция выдавала ошибку уровня <constant>E_WARNING</constant>
и возвращала значение &null;.
</entry>
</row>
<row>
<entry>7.1.0</entry>
<entry>
Внутренний алгоритм получения случайных чисел
<link linkend="migration71.incompatible.rand-srand-aliases">изменён</link>
с функции rand библиотеки libc на генератор
на базе <link xlink:href="&url.mersenne;">Вихря Мерсенна</link>.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Пример использования функции <function>array_rand</function></title>
<programlisting role="php">
<![CDATA[
<?php
$input = array("Neo", "Morpheus", "Trinity", "Cypher", "Tank");
$rand_keys = array_rand($input, 2);
echo $input[$rand_keys[0]] . "\n";
echo $input[$rand_keys[1]] . "\n";
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><function>Random\Randomizer::pickArrayKeys</function></member>
<member><function>Random\Randomizer::shuffleArray</function></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->