2017-06-19 3 views
1

Während bekannte Wissenschaftler andere Dimensionen untersuchen, versuche ich herauszufinden, wie man mehrdimensionale Arrays mit dynamischen Daten füllen kann.Mehrdimensionales Array mit Daten füllen

Ich muss eine unbestimmte Anzahl von Werten hinzufügen, die aus einer zufälligen Funktion berechnet werden.

function my_random ($min, $max) { 

     $random_var = rand($min, $max); 
     return $random_var; 
    } 

würde ich meine Array mag so aussehen:

$array_example = [ 
       'id' => $id, 
       'value1' => $value1, 
       'value2' => $value2 

      ]; 

... oder vielleicht wie folgt aus:

$array[$i] = [ 
       'id' => $id, array(
        'value1' => $value1, 
        'value2' => $value2 
       ) 
     ]; 

ich eine einfache dachte for-Schleife würde den Trick und so habe ich es versucht:

for ($i = 1; $i <= $amount; $i++) { 

    $array[$i] = $i; 
    $array[$i] = [ 
      'id' => $i, array(
       'value1' => $value1, 
       'value2' => $value2 
      ) 
     ]; 
} 

... aber es kommt alles falsch (von der Konsole) aus:

string(103) "{"id":2,"value1":[14,{"1":{"id":1,"0":{"value1":[14],"value2":[11]}}},13],"value2":[11,19]}"

Die for-Schleife, sie scheint zu nisten. Ich habe verschiedene Funktionen ausprobiert, in der Hoffnung, es richtig zu machen: range(), um die ID zu bekommen und dann mit Daten zu füllen, array_push() und ich habe sogar versucht zu kombinieren und zu verschmelzen.

Diese thread macht es einfach aussehen:

$array[] = "item"; 
$array[$key] = "item"; 
array_push($array, "item", "another item"); 

Aber diese Lösung funktioniert nur, um den Index zu erstellen.

Wie füge ich diese Werte dynamisch in jeden Index ein? Was ich letztendlich brauche, ist, auf das Array und seine Werte wie folgt zugreifen zu können:

$array[0]["value1"]. 

Danke.

+0

Es ist nicht klar, was genau Ausgabe, die Sie wollen. Es gibt zwei erwartete Ausgaben.Und der Code wird ein anderes Array erzeugen. Sei genau. Was ist auch der Zweck der 'my_random' Funktion? Du benutzt es nirgendwo. –

+0

Ich benutze es in meinem Code, ich habe es hier einfach nicht eingefügt. Der Grund, warum ich die Zufallsfunktion erwähnte, ist zu zeigen, warum ich mit der for-Schleife iterieren muss, während ich das Datum von der Zufallsfunktion hinzufüge. Für jeden Index (0, 1, 2) gibt es also einen zufälligen Wert, der in jeden dieser Indizes eingefügt werden muss. –

+0

Um eine qualitativ hochwertige Antwort zu erhalten, müssen Sie eine Qualitätsfrage stellen. Zeigen Sie uns, wie Ihr Eingabe-Array aussieht. Willst du zufällige Elemente, zufällige Anzahl von Elementen oder beides? – mickmackusa

Antwort

2

indiziertes Array von assoziativen Arrays

Ein array in PHP ist tatsächlich ein geordnetes Karte. Eine Map ist ein Typ, der den Schlüsseln Werte zuordnet. Dieser Typ ist für verschiedene Verwendungszwecke optimiert. Es kann als Array, Liste (Vektor), Hash-Tabelle (eine Implementierung einer Karte), Wörterbuch, Sammlung, Stapel, Warteschlange und wahrscheinlich mehr behandelt werden. Da Array-Werte andere Arrays sein können, sind auch Bäume und mehrdimensionale Arrays möglich.

Die folgende Funktion nimmt eine wahlfreie ganze Argument oder defaults to 10, und initiiert eine for loop eine indexed Array von associative array()s zu schaffen.

<!DOCTYPE html><html><head></head><body> 
<?php 
    function createArrayOf($quantity = 10) { 
     $arr = []; 
     for ($i = 0; $i < $quantity; ++$i) { 
      $arr[ $i ] = array( 
       "value_1" => "some value", 
       "value_2" => "another value" 
      ); 
     } 
     return $arr; 
    } 
?> 
<pre><?php var_export(createArrayOf(5)); ?></pre> 
</body></html> 

Output var_export() verwendet, die:

Informationen über die gegebene Variable strukturiert wird. Es ähnelt var_dump() mit einer Ausnahme: Die zurückgegebene Repräsentation ist gültiger PHP-Code.

array (
    0 => 
    array (
     'value_1' => 'some value', 
     'value_2' => 'another value', 
    ), 
    1 => 
    array (
     'value_1' => 'some value', 
     'value_2' => 'another value', 
    ), 
    2 => 
    array (
     'value_1' => 'some value', 
     'value_2' => 'another value', 
    ), 
    3 => 
    array (
     'value_1' => 'some value', 
     'value_2' => 'another value', 
    ), 
    4 => 
    array (
     'value_1' => 'some value', 
     'value_2' => 'another value', 
    ), 
) 
+0

Es ist so einfach, wenn Sie die Syntax kennen. :) Vielen Dank! –

+0

@ DanSebastian - NP; YW. Danke für die Annahme. Ich habe die zusätzlichen Details hinzugefügt, die ich versprochen habe. Glückliche Kodierung! –