simplecontent

PHP Snippets und Beispiele

Inhaltsverzeichnis A-Z Register
Beispiel ausführen

Arraywerte zufällig anordnen

Einzelne Elemente sollen dabei ihre Position beibehalten

Das kann man u.a. bei multiple choice Fragebögen verwenden. Wenn z.B. als letztes Element immer "Sonstiges" stehen soll. Das PHP Code Beispiel:
<?php
/**
* Array- shuffeln und dabei einzelne Elemente fixieren
*/


$test = array ('Affe','Bär','Camel''Dachs''Elefant',
        
'Fuchs''Gorilla','Hase' ,'Igel','Jaguar','Katze','Sonstiges');

// Diese Elemente sollen fixiert werden

$fixed = array(1,8,10,11);

function 
display_array($arr)
{
    
$result join(', ',$arr);
    echo 
$result.'<br>';
}

function 
my_shuffle($arr,$f)
{
    
$new = array();
    
$stack = array();
    for (
$n=0$n count($arr); $n++){
        if (
in_array($n$f)) {
            
$new[$n] = $arr[$n];
        } else {
            
$stack[] = $arr[$n];
        }
    }

    
shuffle($stack);
    for (
$n=0;$n count($arr); $n++){
        if (isset (
$new[$n])) {
             continue;
        } else {
            
$new[$n] = array_pop($stack);
        }
    }

    
ksort($new);

    return 
$new;
}

display_array($test);
$test my_shuffle($test$fixed);
display_array($test);

?>

Dieses PHP Snippet soll in erster Linie als Beispiel und Anregung für eigene Bemühungen dienen.
Gerne darf man es für Projekte aller Art benutzen.
Möchte jemand das Snippet also solches in ähnlicher oder anderer Form veröffentlichen ist ein kleiner Hinweis auf simplecontent.net nicht zuviel verlangt oder Herr Koch?
Für die Abwesenheit von Fehlern kann natürlich keine Gewähr gegeben werden.