2016-07-19 16 views
2

Die vereinfachte Version meines Codes ist unten, ich werde schließlich Werte an die Anzahl der Personen zuweisen (das ist von einer SQL-Tabelle). Ich frage mich, was mit meiner mehrdimensionalen Anordnung nicht stimmt. Es scheint, als ob alles assoziativ sein sollte, wenn ich es mache, aber das Array, das ausgespuckt wird, ist nicht das, wonach ich suche, weil der erste Schlüssel kein Wert der Entfernung ist, sondern nur eine inkrementierende Zahl. Wie mache ich ein Array, das es mir erlaubt, dies als Schlüssel zu verwenden? (Bitte beachten Sie, dass in diesem Beispiel ich weiß nicht, wie viele Strecken gibt es noch die Menge der Menschen in jeder Entfernung.)Dynamisch generierte PHP multidimensionale assoziative Array

<?php 
$speed = array("ran", "walked"); 
$distance = array(15,10,3,5,1,2); 

foreach ($distance as $key) { 
    foreach ($speed as $secondarykey) { 
    $array[$key][$secondarykey] = "number of people"; 
    } 
} 

print_r(array_values($array)); 

unset($array); 

?> 

Mein Array, das ich zurückblicken kann wie folgt aus:

Array 
(
[0] => Array 
    (
     [ran] => number of people 
     [walked] => number of people 
    ) 

[1] => Array 
    (
     [ran] => number of people 
     [walked] => number of people 
    ) 

[2] => Array 
    (
     [ran] => number of people 
     [walked] => number of people 
    ) 

[3] => Array 
    (
     [ran] => number of people 
     [walked] => number of people 
    ) 

[4] => Array 
    (
     [ran] => number of people 
     [walked] => number of people 
    ) 

[5] => Array 
    (
     [ran] => number of people 
     [walked] => number of people 
    ) 

) 

Es scheint, als ob es etwas Einfaches gibt, dass ich einfach nicht verstehe, wie multidimensionale Arrays funktionieren. Jede Hilfe wird geschätzt.

+2

Ich denke, das sagt alles: [ "array_values ​​() gibt alle Werte aus dem Array und Indizes der Array numerisch."] (Http://php.net/array_values) – hsan

+0

@Lewis Smith kann ich Fragen Sie, warum Sie 2 Arrays haben, die 2 Informationssätze enthalten, und warum kombinieren Sie nicht alle Informationen zu einem multidimensionalen Array? – unixmiah

+0

@unixmiah Das Ziel ist, dass ich ein multidimensionales Array unter Verwendung sowohl der Geschwindigkeits- als auch der Entfernungsmatrix als Variablen erstellen werde. Es scheint, dass ich dies bereits getan habe, ich habe mein Array nicht korrekt angezeigt. –

Antwort

0

Sie erhalten nicht die erwartete Ausgabe, weil Sie nicht das gesamte Array drucken, sondern nur die Werte. Ändern

print_r(array_values($array)); 

An:

print_r($array); 
0

Warum nicht multidimentional Array verwenden, um Ihre Daten auf diese Weise zu bilden.

$speed = array("ran", "walked"); 
$distance = array(15,10,3,5,1,2); 

<?php 
$distance = array( 
         array("ran", 15,10,3,5,1,2), 
         array("walked", 10,5,2,3,0,1) 
       ); 
?> 
+0

Der Grund, warum ich meine Daten nicht auf diese Weise speichern kann, ist, dass ich einen Wert für jede Kreuzung des ran/walked-Arrays und des Distanz-Arrays speichern muss. Ansonsten würde das, was Sie vorschlagen, gut funktionieren. –

Verwandte Themen