PHP.mk документација

shuffle

Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.

function.shuffle.php PHP.net прокси Преводот се освежува
Оригинал на PHP.net
Патека function.shuffle.php Локална патека за оваа страница.
Извор php.net/manual/en Оригиналниот HTML се реупотребува и локално се стилизира.
Режим Прокси + превод во позадина Кодовите, табелите и белешките остануваат читливи во истиот тек.
shuffle

Референца за `function.shuffle.php` со подобрена типографија и навигација.

function.shuffle.php

shuffle

(PHP 4, PHP 5, PHP 7, PHP 8)

shuffleИзмешај низа

= NULL

shuffle(array &$array): true

Оваа функција ги меша (на случаен начин ги распоредува елементите во) низа.

Безбедност: стандардниот сет на знаци

Оваа функција не генерира криптографски сигурни вредности, и Ако завршниот идентификатор е вовлечен, може да се користат и табулатори, но табулаторите и празнините да се користи за криптографски цели, или цели што бараат вратените вредности да бидат непредвидливи.

Ако е потребна криптографски сигурна случајност, Random\Randomizer може да се користи со Random\Engine\Secure engine. За едноставни случаи на употреба, random_int() and random_bytes() функциите обезбедуваат удобен и сигурен API што е поддржано од оперативниот систем CSPRNG.

Безбедност: стандардниот сет на знаци

Оваа функција ја користи глобалната Mt19937 („Mersenne Twister“) инстанца како извор на случајност и на тој начин ја споделува својата состојба со сите други функции што ја користат глобалната Mt19937. Користењето на која било од овие функции ја напредува секвенцата за all другите функции, без оглед на опсегот.

Генерирање повторливи секвенци со поставување семе mt_srand() or srand() со позната вредност, исто така, ќе даде повторлив излез од оваа функција.

Претпочитајте да користите Random\Randomizer методи во целиот новонапишан код.

Параметри

array

Низата.

Вратени вредности

Секогаш враќа true.

Дневник на промени

Верзија = NULL
7.1.0 Внатрешниот алгоритам за рандомизација е променет за да се користи » Мерсен Твистер Генератор случајних бројева уместо libc rand функције.

Примери

Пример #1 shuffle() example

<?php
$numbers
= range(1, 20);
shuffle($numbers);
foreach (
$numbers as $number) {
echo
"$number ";
}
?>

Белешки

Забелешка: Оваа функција доделува нови клучеви на елементите во arrayЌе отстрани какви било постоечки клучеви што можеби биле доделени, наместо само да ги преуреди клучевите.

Забелешка:

Ги ресетира внатрешниот покажувач на низата на првиот елемент.

Види Исто така

Белешки од корисници 2 забелешки

ahmad at ahmadnassri dot com
пред 16 години
shuffle for associative arrays, preserves key=>value pairs.
(Based on (Vladimir Kornea of typetango.com)'s function) 

<?php
    function shuffle_assoc(&$array) {
        $keys = array_keys($array);

        shuffle($keys);

        foreach($keys as $key) {
            $new[$key] = $array[$key];
        }

        $array = $new;

        return true;
    }
?>

*note: as of PHP 5.2.10, array_rand's resulting array of keys is no longer shuffled, so we use array_keys + shuffle.
pineappleclock at gmail dot com
пред 17 години
If you want the Power Set (set of all unique subsets) of an array instead of permutations, you can use this simple algorithm:

<?php
/**
* Returns the power set of a one dimensional array,
* a 2-D array.
* array(a,b,c) ->
* array(array(a),array(b),array(c),array(a,b),array(b,c),array(a,b,c))
*/
function powerSet($in,$minLength = 1) { 
   $count = count($in); 
   $members = pow(2,$count); 
   $return = array();
   for ($i = 0; $i < $members; $i++) {
      $b = sprintf("%0".$count."b",$i);
      $out = array();
      for ($j = 0; $j < $count; $j++) {
         if ($b{$j} == '1') $out[] = $in[$j];
      }
      if (count($out) >= $minLength) {
         $return[] = $out;
      }
   }
   return $return;
}
?>
На оваа страница

Автоматски outline од активната документација.

Насловите ќе се појават тука по вчитување.

Попрегледно читање

Примерите, changelog табелите и user notes се визуелно издвоени за да не се губат во долгата содржина.

Брз совет Користи го outline-от Скокни директно на главните секции од активната страница.
Извор Оригиналниот линк останува достапен Кога ти треба целосен upstream context, отвори го PHP.net во нов tab.