Convertir matriz asociativa en indexada

He visto algunos ejemplos usando array_values, pero no puedo entender cómo hacerlo funcionar …

Tengo una matriz asociativa que pasó a través de POST, necesito convertirla en una matriz indexada …

Mi print_r ($ _ POST) me da esto … Necesito poner todo esto en una matriz indexada 🙂

Array ( [fieldnames] => 36771X21X198|36771X21X199|36771X21X200|36771X21X201|36771X21X202 [36771X21X198] => 3434343 [display36771X21X198] => on [36771X21X199] => 5656565 [display36771X21X199] => on [36771X21X200] => 89898989 [display36771X21X200] => on [36771X21X201] => 90909090 [display36771X21X201] => on [36771X21X202] => 12121212 [display36771X21X202] => on [move] => movesubmit [move2] => ONLINE Submit [thisstep] => 1 [sid] => 36771 [token] => 1234567890 ) 

Observe esta increíble forma de convertir su $_POST en una matriz indexada numéricamente:

 $numerical = array_values($_POST); 

pero, ¿y si quieres preservar tus llaves? Tal vez quieres algo como esto?

 $numerical = array(); $sep = ':'; foreach($_POST as $k=>$v) { $numerical[] = $k.$sep.$v; } 

$ numerical tendrá:

 Array ( [0] => fieldnames:36771X21X198|36771X21X199|36771X21X200|36771X21X201|36771X21X202 [1] => 36771X21X198:3434343 [2] => display36771X21X198:on [3] => 36771X21X199:5656565 [4] => display36771X21X199:on [5] => 36771X21X200:89898989 [6] => display36771X21X200:on [7] => 36771X21X201:90909090 [8] => display36771X21X201:on [9] => 36771X21X202:12121212 [10] => display36771X21X202:on [11] => move:movesubmit [12] => move2:ONLINE Submit [13] => thisstep:1 [14] => sid:36771 [15] => token:1234567890 ) 

o, para mi último ejemplo:

 $fieldnames_original = explode('|', $_POST['fieldnames']); $fieldnames_actual = array(); $values = array(); foreach($_POST as $k=>$v) { if($k!='fieldnames') { $fieldnames_actual[] = $k; $values[] = $v; } } 

que establecerá 3 matrices:

$ fieldnames_original:

 Array ( [0] => 36771X21X198 [1] => 36771X21X199 [2] => 36771X21X200 [3] => 36771X21X201 [4] => 36771X21X202 ) 

$ fieldnames_actual:

 Array ( [0] => 36771X21X198 [1] => display36771X21X198 [2] => 36771X21X199 [3] => display36771X21X199 [4] => 36771X21X200 [5] => display36771X21X200 [6] => 36771X21X201 [7] => display36771X21X201 [8] => 36771X21X202 [9] => display36771X21X202 [10] => move [11] => move2 [12] => thisstep [13] => sid [14] => token ) 

y $ valores:

 Array ( [0] => 3434343 [1] => on [2] => 5656565 [3] => on [4] => 89898989 [5] => on [6] => 90909090 [7] => on [8] => 12121212 [9] => on [10] => movesubmit [11] => ONLINE Submit [12] => 1 [13] => 36771 [14] => 1234567890 ) 

función

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

Pase la matriz asociativa como un parámetro y 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)