Schauen Sie sich diesen Code an:
$GET = array();
$key = 'one=1';
$rule = explode('=', $key);
/* array_push($GET, $rule[0] => $rule[1]); */
Ich suche so etwas wie das hier, damit:
print_r($GET);
/* output: $GET[one => 1, two => 2, ...] */
Gibt es eine Funktion, die das macht? (weil array_push
auf diese Weise nicht funktionieren wird)
Nein, es gibt kein array_push()
Äquivalent für assoziative Arrays, weil es keine Möglichkeit gibt, den nächsten Schlüssel zu bestimmen.
Sie müssen verwenden
$arrayname[indexname] = $value;
Genau das, was Pekka sagte...
Alternativ können Sie wahrscheinlich array_merge wie diese verwenden, wenn Sie wollten:
array_merge($_GET, array($rule[0] => $rule[1]));
Aber ich würde Pekka's Methode bevorzugen, da sie viel einfacher ist.
Ich war gerade auf der Suche nach der gleichen Sache und mir wurde klar, dass ich wieder einmal anders denke, weil ich von der alten Schule bin. Ich gehe den ganzen Weg zurück zu BASIC und PERL und manchmal vergesse ich, wie einfach die Dinge in PHP wirklich sind.
Ich habe gerade diese Funktion gemacht, um alle Einstellungen aus der Datenbank zu nehmen, wo ihre 3 Spalten sind. setkey, item (key) & value (value) und sie in ein Array namens settings mit dem gleichen Schlüssel/Wert zu platzieren, ohne push zu benutzen, wie oben.
Ziemlich einfach & wirklich einfach
// Alle Einstellungen holen $settings=getGlobalSettings();
// Benutzer-Theme-Auswahl anwenden $theme_choice = $settings['theme'];
... usw. usw. ....
Funktion getGlobalSettings(){
$dbc = mysqli_connect(wds_db_host, wds_db_user, wds_db_pass) or die("MySQL Error: " . mysqli_error()); mysqli_select_db($dbc, wds_db_name) or die("MySQL Error: " . mysqli_error()); $MySQL = "SELECT * FROM systemSettings"; $result = mysqli_query($dbc, $MySQL); while($row = mysqli_fetch_array($result)) { $settings[$row['item']] = $row['value']; // NO NEED FOR PUSH } mysqli_close($dbc);
return $settings; }
So wie die anderen Beiträge erklären... In php gibt es keine Notwendigkeit für "PUSH" ein Array, wenn Sie
Schlüssel => Wert
UND... Es ist auch nicht nötig, das Array zuerst zu definieren.
$array=array();
Sie müssen weder definieren noch pushen. Weisen Sie einfach $array[$key] = $value zu; Das ist automatisch ein Push und eine Deklaration zur gleichen Zeit.
Ich muss hinzufügen, dass aus Sicherheitsgründen, (P)oor (H)elpless (P)rotection, ich meine Programming for Dummies, ich meine PHP.... hehehe, ich schlage vor, dass Sie dieses Konzept nur für das verwenden, was ich beabsichtige. Jede andere Methode könnte ein Sicherheitsrisiko darstellen. So, das war mein Disclaimer!