2009-06-30 5 views
49

Hallo da draußen in Stackland. Ich habe mich gefragt, ob es eine Funktion oder eine einfache Möglichkeit gibt, ein assoziatives Array in ein indiziertes Array zu ändern.Ändere ein assoziatives Array in ein indiziertes Array/erhalte ein Zend_Table_Row_Abstract als nicht assoziativ

Um es genauer auszudrücken, benutze ich das Zend-Framework, und ich habe einen Punkt in meiner Website, wo ich eine Reihe einer SQL-Tabelle als ein assoziatives Array herausnehmen. Ich habe es über ein Echo in JSON an Javascript weitergegeben. Mir ist jedoch aufgefallen, dass ich die Namen der Spalten meiner Datenbank in Firebug sehen kann. Mit Außenstehende kennen die Namen der Tabellen und Spalten ist eine große Sicherheit no-no, so würde ich es Gibt es zu ändern, wie aus

SQLarray[user_id] 
SQLarray[block_id] 
SQLarray[b_price] etc. 

zu

SQLarray[0] 
SQLarray[1] 
SQLarray[2] etc. 

ein guter Weg, dies zu tun ?

Es würde auch funktionieren, wenn Zend_Table_Abstract-> fetchAll() ein nicht-assoziatives Array zurückgeben könnte, aber das ist nicht möglich. Danke für Ihre Hilfe!

Antwort

123

Ist reines PHP in Ordnung?

$array = array_values($array); 

Source

+0

Wenn das ursprüngliche Array von odbc_fetch_array generiert wurde, kann ich auf array_values ​​zählen, um immer die richtige Spaltenreihenfolge des Resultsets zu berücksichtigen? Es scheint, als könnte ich. –

3

definieren Funktion

function array_default_key($array) { 
    $arrayTemp = array(); 
    $i = 0; 
    foreach ($array as $key => $val) { 
     $arrayTemp[$i] = $val; 
     $i++; 
    } 
    return $arrayTemp; 
} 

Pass die assoziative Array als Parameter, und es wird in den Standard-Index des Arrays konvertiert. Zum Beispiel: Wir haben Array('2014-04-30'=>43,'2014-04-29'=>41) nach dem Aufruf der Funktion wird das Array Array(0=>43,1=>41) sein.

+1

Können Sie eine Beschreibung oder eine kurze Erklärung dazu bereitstellen, wie Ihr Code das Problem löst? – Illidanek

+0

übergeben Sie einfach das assoziative Array als Parameter und konvertieren es in den Standardindex des Arrays. Zum Beispiel: Wir haben Array ('2014-04-30' => 43, '2014-04-29' => 41) nach Call-Funktion Array wird Array (0 => 43,1 => 41) –

-1

Sie könnten diesen einfachen Code verwenden, wenn Sie die integrierte PHP-Funktion nicht verwenden möchten.