2016-06-14 7 views
-3

Ich habe eine große Frage. Ich habe dieses Array:Erzeuge ein Array mit angegebenen Schlüsseln

Array 
(
    [2] => 566 
    [9] => 1946 
) 

Ich brauche ein Array zu erzeugen, für dieses Beispiel, ist der Schlüssel für Array muß von 1 bis 7 zufällig sein ... Also, für dieses Array sollte das Ergebnis sein:

Array 
(
    [1] => 566 
    [5] => 566 
    [1] => 1946 
    [6] => 1946 
    [2] => 1946 
    [5] => 1946 
    [7] => 1946 
    [6] => 1946 
    [3] => 1946 
    [4] => 1946 
    [7] => 1946 
) 

Also 556 habe 2, also habe ich das Array 2 mal mit dem Schlüssel zwischen 1..7. Für 1946 das gleiche, hat es 9 von Anfang an. Und für diese ID neet in ein Array 9 Mal mit dem Schlüssel zwischen 1..7. Hilf mir bitte. Thx im Voraus

+0

Ich kann nicht Array mit einigen gleichen Tasten – splash58

+0

Das Ergebnis ist nicht möglich. Sie können kein Array mit mehreren gleichen Schlüsseln haben. –

+0

Muss es der Schlüssel in diesem Array sein? könnte das ergebnis ein array von objekten sein? wie '[0] => {x: 7, number: 566}, [1] => {x: 7, number: 1946}' – Jeff

Antwort

0

In PHP-Array-Schlüssel sind einzigartig. Daher können Ihre Anforderungen aufgrund der Spezifität dieser Implementierung per Definition nicht erfüllt werden.

Stattdessen, wenn man bedenkt, dass Sie zwei eindeutige Werte haben (566 und 1946), für die Sie eine beliebige Anzahl von Zufallswerten (nicht eindeutig) zwischen 1 und 7 erzeugen wollen, dann ist die inverse ist möglich, unter Verwendung von die Werte 566 und 1946 als Schlüssel.

$uniqueValues = [2 => 566, 9 => 1946]; 
$newValues = []; 

function getRandomNumbers($n, $i, $j) 
{ 
    $values; 
    for($s = 0; $s < $n; $s++) { 
     $values[] = mt_rand($i, $j); 
    } 
    return $values; 
} 

foreach($uniqueValues as $n => $value) { 
    $newValues[$value] = getRandomNumbers($n, 1, 7); 
} 

var_dump($newValues); 

Dies ausgeben sollte etwas ähnlich der folgenden ...

array(2) { 
    [566]=> 
    array(2) { 
    [0]=> 
    int(6) 
    [1]=> 
    int(5) 
    } 
    [1946]=> 
    array(9) { 
    [0]=> 
    int(4) 
    [1]=> 
    int(2) 
    [2]=> 
    int(6) 
    [3]=> 
    int(6) 
    [4]=> 
    int(5) 
    [5]=> 
    int(2) 
    [6]=> 
    int(2) 
    [7]=> 
    int(2) 
    [8]=> 
    int(7) 
    } 
} 

Was Sie hier stattdessen bekommen, ein Array von Arrays ist, wo die Tasten, um die einzigartigen Satz von Werten repräsentieren, an die Sie haben ein Array von Zufallszahlen.

Verwandte Themen