2012-06-27 16 views
6

tengo una matriz asociativa que cuando se var objeto de dumping se ve así:PHP: ¿Cómo obtener el valor de una matriz por su desplazamiento numérico si se trata de una matriz asociativa?

Array 
(
    [tumblr] => Array 
     (
      [type] => tumblr 
      [url] => http://tumblr.com/ 
     ) 

    [twitter] => Array 
     (
      [type] => twitter 
      [url] => https://twitter.com/ 
     ) 

) 

Como se puede ver la década de claves son por encargo "Tumblr" y "gorjeo" y no es numérico 0 y 1.

Algunas veces Necesito obtener los valores con las teclas personalizadas y, a veces, necesito obtener valores con las teclas numéricas.

¿Hay anyy manera que puedo conseguir $myarray[0] a salida:

(
    [type] => tumblr 
    [url] => http://tumblr.com/ 
) 
+0

Las claves numéricas y de cadena no son intercambiables en PHP. ¿Puedes describir más lo que necesitas? –

+0

Todas las matrices en PHP son asociativas, incluso las indexadas numéricamente. Esto significa que si asigna una cadena como índice, no hay ningún valor numérico asociado. @nickb tiene una buena manera de lidiar con esto a continuación. –

+0

@Michael ni siquiera preguntan, trabajando con el código de otra persona y no tienen ganas de volver a escribir todo el asunto. – TK123

Respuesta

9

Puede ejecutar la matriz a través array_values():

$myarray = array_values($myarray); 

Ahora la matriz se parece a:

array(2) { 
    [0]=> 
    array(2) { 
    ["type"]=> 
    string(6) "tumblr" 
    ["url"]=> 
    string(18) "http://tumblr.com/" 
    } ... 

Esto se debe a que array_values() solo captará los valores f rom la matriz y restablecer/reordenar/volver a activar la matriz como una matriz numérica.

+1

'$ myarray + = array_values ​​($ myarray);' crearía una matriz que podría usar índices con nombre y numéricos, de la misma manera que mysql_fetch_array funciona :) –

+1

+1 para agregar detalles –

Cuestiones relacionadas