2009-06-30 10 views
49

Hola en Stackland. Me preguntaba si había una función o una forma sencilla de cambiar una matriz asociativa en una matriz indexada.Cambiar una matriz asociativa en una matriz indexada/obtener una Zend_Table_Row_Abstract como no asociativo

Para elaborar, estoy usando el framework Zend, y tengo un punto en mi sitio donde saco una fila de una tabla SQL como una matriz asociativa. Lo pasé a javascript a través de un eco en JSON. Sin embargo, me he dado cuenta de que puedo ver los nombres de las columnas de mi base de datos en Firebug. Tener extraños conocen los nombres de las tablas y columnas es un gran no-no de seguridad, por lo que me gustaría cambiarlo de

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

a

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

¿Hay una buena manera de hacer esto ?

También trabajaría para que Zend_Table_Abstract-> fetchAll() devuelva una matriz no asociativa, pero no creo que eso sea posible. ¡Gracias por tu ayuda!

Respuesta

123

¿Es puro php ok?

$array = array_values($array); 

Source

+0

Si la matriz inicial se generó a partir odbc_fetch_array, puedo contar array_values ​​para honrar siempre el correcto columna de orden superior del conjunto de resultados? Parece que puedo. –

3

definir función

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

pasar la matriz asociativa como parámetro y que se convertirá en el índice predeterminado de la matriz. Por ejemplo: tenemos Array('2014-04-30'=>43,'2014-04-29'=>41) después de la llamada a la función la matriz será Array(0=>43,1=>41).

+1

¿Podría proporcionar una descripción o una breve explicación de cómo su código resuelve el problema? – Illidanek

+0

simplemente pase la matriz asociativa como parámetro y la convierte en el índice predeterminado de la matriz. Por ejemplo: tenemos Array ('2014-04-30' => 43, '2014-04-29' => 41) después del array de la función de llamada será Array (0 => 43,1 => 41) –

-1

Puede usar esta simple pieza de código, si no desea usar la función PHP incorporada.

$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); 
Cuestiones relacionadas