Ta en titt på denne koden:
$GET = array();
$key = 'one=1';
$rule = explode('=', $key);
/* array_push($GET, $rule[0] => $rule[1]); */
Jeg er på utkikk etter noe sånt som dette:
print_r($GET);
/* output: $GET[one => 1, two => 2, ...] */
Finnes det en funksjon for å gjøre dette? (fordi array_push
vil ikke fungere på denne måten)
Jeg lette nettopp etter det samme, og jeg innså at jeg nok en gang tenker annerledes fordi jeg er av den gamle skolen. Jeg går helt tilbake til BASIC og PERL, og noen ganger glemmer jeg hvor enkelt det egentlig er i PHP.
Jeg lagde nettopp denne funksjonen for å ta alle innstillinger fra databasen der de er 3 kolonner. setkey, item (key) & value (value) og plassere dem i en array kalt settings med samme key/value uten å bruke push akkurat som over.
Ganske enkelt & enkelt egentlig
// Hent alle innstillinger $settings=getGlobalSettings();
// Bruk brukerens temavalg $theme_choice = $settings['theme'];
... osv. osv. osv. ....
function 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; }
Så som de andre innleggene forklarer ... I php er det ikke behov for å "PUSH" en array når du bruker
Key => Value
OG... Det er heller ikke nødvendig å definere matrisen først.
$array=array();
Du trenger ikke å definere eller pushe. Bare tilordne $array[$key] = $value; Det er automatisk en push og en deklarasjon samtidig.
Jeg må legge til at av sikkerhetsgrunner, (P)or (H)elpless (P)rotection, jeg mener Programming for Dummies, jeg mener PHP.... hehehehe Jeg foreslår at du bare bruker dette konseptet til det jeg har tenkt. Alle andre metoder kan utgjøre en sikkerhetsrisiko. Det var min ansvarsfraskrivelse!