2009-06-30 23 views
49

Ciao là fuori a Stackland. Mi chiedevo se c'era o una funzione o un modo semplice per modificare un array associativo in un array indicizzato.Modifica un array associativo in un array indicizzato/ottieni un oggetto Zend_Table_Row_Abstract come non-associativo

Elaborare, sto utilizzando il framework Zend, e ho un punto nel mio sito dove prendo fuori una fila di una tabella SQL come un array associativo. L'ho passato a javascript tramite echo in JSON. Tuttavia, ho notato che posso vedere i nomi delle colonne del mio database in Firebug. Avere estranei conoscono i nomi delle tabelle e delle colonne è un grande sicurezza no-no, quindi mi piacerebbe cambiarlo da

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

a

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

C'è un buon modo per fare questo ?

Dovrebbe anche essere possibile avere un Zend_Table_Abstract-> fetchAll() restituire un array non associativo, ma non penso sia possibile. Grazie per l'aiuto!

risposta

123

è puro ok php?

$array = array_values($array); 

Source

+0

Se la matrice iniziale è stato generato da odbc_fetch_array, posso contare su array_values ​​per onorare sempre la giusta colonna ordine del gruppo di risultati? Sembra che io possa –

3

definire funzione

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

passare la matrice associativo come parametro e convertirà nell'indice predefinito della matrice. Ad esempio: abbiamo Array('2014-04-30'=>43,'2014-04-29'=>41) dopo la chiamata alla funzione matrice sarà Array(0=>43,1=>41).

+1

Potrebbe fornire una descrizione o una breve spiegazione di come il codice risolve il problema? – Illidanek

+0

semplicemente passare array associativo come parametro e convertire in indice di default della matrice. Ad esempio: abbiamo Array ('2014-04-30' => 43, '2014-04-29' => 41) dopo che l'array di funzioni di chiamata sarà Array (0 => 43,1 => 41) –

-1

È possibile utilizzare questo semplice codice, se non si desidera utilizzare la funzione PHP incorporata.

$input_array;   // This is your input array 
$output_array = [];  // This is where your output will be stored. 
foreach ($input_array as $k => $v){ 
    array_push($output_array, $v); 
} 
print_r($output_array); 
Problemi correlati