2009-10-09 17 views
12

Hola, ¿quiero acceder a las etiquetas inactivas dentro de esta matriz alguna idea?Accediendo matrices dentro de matrices En PHP

stdClass::__set_state(
array 
    'languages' => 
    array 
     76 => 
     array 
      'id' => string '76' (length=2) 
      'tag' => string 'Deutsch' (length=7) 
    'targets' => 
    array 
     81 => 
     array 
      'id' => string '81' (length=2) 
      'tag' => string 'Deutschland' (length=11) 
    'tags' => 
    array 
     7866 => 
     array 
      'id' => string '7866' (length=4) 
      'tag' => string 'automobile' (length=10) 
     17800 => 
     array 
      'id' => string '17800' (length=5) 
      'tag' => string 'seat leon' (length=9) 
     17801 => 
     array 
      'id' => string '17801' (length=5) 
      'tag' => string 'seat leon cupra' (length=15) 
    'inactiveTags' => 
    array 
     195 => 
     array 
      'id' => string '195' (length=3) 
      'tag' => string 'auto' (length=4) 
     17804 => 
     array 
      'id' => string '17804' (length=5) 
      'tag' => string 'coupès' (length=6) 
     17805 => 
     array 
      'id' => string '17805' (length=5) 
      'tag' => string 'fahrdynamik' (length=11) 
     901 => 
     array 
      'id' => string '901' (length=3) 
      'tag' => string 'fahrzeuge' (length=9) 
     17802 => 
     array 
      'id' => string '17802' (length=5) 
      'tag' => string 'günstige neuwagen' (length=17) 
     1991 => 
     array 
      'id' => string '1991' (length=4) 
      'tag' => string 'motorsport' (length=10) 
     2154 => 
     array 
      'id' => string '2154' (length=4) 
      'tag' => string 'neuwagen' (length=8) 
     10660 => 
     array 
      'id' => string '10660' (length=5) 
      'tag' => string 'seat' (length=4) 
     17803 => 
     array 
      'id' => string '17803' (length=5) 
      'tag' => string 'sportliche ausstrahlung' (length=23) 
     74 => 
     array 
      'id' => string '74' (length=2) 
      'tag' => string 'web 2.0' (length=7) 
    'categories' => 
    array 
     16082 => 
     array 
      'id' => string '16082' (length=5) 
      'tag' => string 'Auto & Motorrad' (length=15) 
     51 => 
     array 
      'id' => string '51' (length=2) 
      'tag' => string 'Blogosphäre' (length=11) 
     66 => 
     array 
      'id' => string '66' (length=2) 
      'tag' => string 'Neues & Trends' (length=14) 
     68 => 
     array 
      'id' => string '68' (length=2) 
      'tag' => string 'Privat' (length=6)
+1

Esta es PHP, ¿verdad? Debe etiquetar para dejarlo en claro. –

+0

Sí Su PHP es código PHP – streetparade

Respuesta

17

Puede acceder a la matriz etiquetas con inactivos (suponiendo $ miMatriz contiene la matriz)

$myArray['inactiveTags']; 

Su pregunta no parece ir más allá de acceder a los contenidos de la clave inactiveTags así que sólo puedo especular con lo tu objetivo final es

La primera clave: par de valores de la matriz inactiveTags es

array ('195' => array(
       'id' => 195, 
       'tag' => 'auto') 
    ) 

Para acceder al valor de la etiqueta, se utiliza

$myArray['inactiveTags'][195]['tag']; // auto 

Si quiere recorrer cada elemento inactiveTags, lo haría sugieren:

foreach($myArray['inactiveTags'] as $value) { 
    print $value['id']; 
    print $value['tag']; 
} 

Esto imprimirá todos los valores de ID y la etiqueta para cada inactiveTag

Editar :: Para que otros puedan ver, aquí hay una var_dump de la matriz proporcionada en la pregunta ya que no ha readible

 
array 
    'languages' => 
    array 
     76 => 
     array 
      'id' => string '76' (length=2) 
      'tag' => string 'Deutsch' (length=7) 
    'targets' => 
    array 
     81 => 
     array 
      'id' => string '81' (length=2) 
      'tag' => string 'Deutschland' (length=11) 
    'tags' => 
    array 
     7866 => 
     array 
      'id' => string '7866' (length=4) 
      'tag' => string 'automobile' (length=10) 
     17800 => 
     array 
      'id' => string '17800' (length=5) 
      'tag' => string 'seat leon' (length=9) 
     17801 => 
     array 
      'id' => string '17801' (length=5) 
      'tag' => string 'seat leon cupra' (length=15) 
    'inactiveTags' => 
    array 
     195 => 
     array 
      'id' => string '195' (length=3) 
      'tag' => string 'auto' (length=4) 
     17804 => 
     array 
      'id' => string '17804' (length=5) 
      'tag' => string 'coupès' (length=6) 
     17805 => 
     array 
      'id' => string '17805' (length=5) 
      'tag' => string 'fahrdynamik' (length=11) 
     901 => 
     array 
      'id' => string '901' (length=3) 
      'tag' => string 'fahrzeuge' (length=9) 
     17802 => 
     array 
      'id' => string '17802' (length=5) 
      'tag' => string 'günstige neuwagen' (length=17) 
     1991 => 
     array 
      'id' => string '1991' (length=4) 
      'tag' => string 'motorsport' (length=10) 
     2154 => 
     array 
      'id' => string '2154' (length=4) 
      'tag' => string 'neuwagen' (length=8) 
     10660 => 
     array 
      'id' => string '10660' (length=5) 
      'tag' => string 'seat' (length=4) 
     17803 => 
     array 
      'id' => string '17803' (length=5) 
      'tag' => string 'sportliche ausstrahlung' (length=23) 
     74 => 
     array 
      'id' => string '74' (length=2) 
      'tag' => string 'web 2.0' (length=7) 
    'categories' => 
    array 
     16082 => 
     array 
      'id' => string '16082' (length=5) 
      'tag' => string 'Auto & Motorrad' (length=15) 
     51 => 
     array 
      'id' => string '51' (length=2) 
      'tag' => string 'Blogosphäre' (length=11) 
     66 => 
     array 
      'id' => string '66' (length=2) 
      'tag' => string 'Neues & Trends' (length=14) 
     68 => 
     array 
      'id' => string '68' (length=2) 
      'tag' => string 'Privat' (length=6) 
+0

Es fácil como pensaba. Esto funcionó para mí – streetparade

1

Si $a es la matriz que se pasa, $a[76][0]['id'] debe dar '76' y $a[76][1]['id'] debe dar '81', pero no puedo probar que no tengo instalado en esta máquina PHP.

+0

Lo intentaré ahora – streetparade

+0

$ a [76] [0] ['id'] devuelve NULL – streetparade

+0

lo siento, pero eso lo hace mucho más complicado – streetparade

1

En cuanto a su código: Es un poco difícil de leer ... Si quiero tratar de ver todo en un formato de matriz php, simplemente print_r it. Esto podría ayudar a :

<?php 
$a = 
array( 

    'languages' =>  

    array ( 

    76 =>  

array (  'id' => '76',  'tag' => 'Deutsch', ), ), 'targets' =>  
array ( 81 =>  
array (  'id' => '81',  'tag' => 'Deutschland', ), ), 'tags' =>  
array ( 7866 =>  
array (  'id' => '7866',  'tag' => 'automobile', ),  17800 =>  
array (  'id' => '17800',  'tag' => 'seat leon', ),  17801 =>  
array (  'id' => '17801',  'tag' => 'seat leon cupra', ), ), 
'inactiveTags' =>  
array ( 195 =>  
array (  'id' => '195',  'tag' => 'auto', ),  17804 =>  
array (  'id' => '17804',  'tag' => 'coupès', ),  17805 =>  
array (  'id' => '17805',  'tag' => 'fahrdynamik', ),  901 =>  
array (  'id' => '901',  'tag' => 'fahrzeuge', ),  17802 =>  
array (  'id' => '17802',  'tag' => 'günstige neuwagen', ),  1991 =>  
array (  'id' => '1991',  'tag' => 'motorsport', ),  2154 =>  
array (  'id' => '2154',  'tag' => 'neuwagen', ),  10660 =>  
array (  'id' => '10660',  'tag' => 'seat', ),  17803 =>  
array (  'id' => '17803',  'tag' => 'sportliche ausstrahlung', ),  74 =>  
array (  'id' => '74',  'tag' => 'web 2.0', ), ), 'categories' =>  
array ( 16082 =>  
array (  'id' => '16082',  'tag' => 'Auto & Motorrad', ),  51 =>  
array (  'id' => '51',  'tag' => 'Blogosphäre', ),  66 =>  
array (  'id' => '66',  'tag' => 'Neues & Trends', ),  68 =>  
array (  'id' => '68',  'tag' => 'Privat', ), ),); 

printarr($a); 
printarr($a['languages'][76]['tag']); 
parintarr($a['targets'][81]['id']); 
function printarr($in){ 
echo "\n"; 
print_r($in); 
echo "\n"; 
} 
//run in php command line php path/to/file.php to test, switching otu the print_r.