web-dev-qa-db-fra.com

Accès aux tableaux à l'intérieur des tableaux dans PHP

Bonjour, je veux accéder à des balises inactives dans ce tableau, une idée?

stdClass :: __ set_state (
 array 
 'languages' => 
 array 
 76 => 
 array 
 'id' = > chaîne '76' (longueur = 2) 
 'tag' => chaîne 'Deutsch' (longueur = 7) 
 'cibles' => 
 tableau 
 81 => 
 Tableau 
 'Id' => chaîne '81' (longueur = 2) 
 'Tag' => chaîne 'Deutschland' (longueur = 11) 
 'tags' => 
 tableau 
 7866 => 
 tableau 
 'id' => chaîne '7866' (longueur = 4) 
 'tag' => chaîne 'automobile' (longueur = 10) 
 17800 => 
 tableau 
 'id' => chaîne '17800' (longueur = 5) 
 'tag' => chaîne 'seat leon' (longueur = 9) 
 17801 => 
 tableau 
 'id' => chaîne '17801' (longueur = 5 ) 
 'tag' => chaîne 'seat leon cupra' (longueur = 15) 
 'inactiveTags' => 
 tableau 
 195 => 
 tableau 
 'id' => chaîne '195' (longueur = 3) 
 'tag' => chaîne 'auto' (longueur = 4) 
 17804 => 
 tableau 
 'id' => chaîne '17804' (longueur = 5) 
 'tag' => chaîne 'coupès' (longueur = 6) 
 17805 => 
 tableau 
 'id' => chaîne '17805' (longueur = 5) 
 'tag' => chaîne 'fahrdynamik' (longueur = 11) 
 901 => 
 tableau 
 'id' => chaîne '901' (longueur = 3) 
 'tag' => chaîne 'fahrzeuge' (longueur = 9) 
 17802 => 
 tableau 
 'id' => chaîne '17802' (longueur = 5) 
 'tag' => chaîne 'günstige neuwagen' (longueur = 17) 
 1991 => 
 tableau 
 'id' => chaîne '1991' (longueur = 4) 
 'tag' => chaîne 'sport automobile' (longueur = 10) 
 2154 => 
 tableau 
 'id' => chaîne '2154' (longueur = 4) 
 'tag' => chaîne 'neuwagen' (longueur = 8) 
 10660 => 
 Tableau 
 'Id' => chaîne '10660' (longueur = 5) 
 'Tag' => chaîne 'siège' (longueur = 4) 
 17803 => 
 Tableau 
 'Id' => chaîne '17803' (longueur = 5) 
 'Tag' => chaîne 'sportliche ausstrahlung' (longueur = 23) 
 74 => 
 tableau 
 'id' => chaîne '74' (longueur = 2) 
 'tag' => chaîne ' web 2.0 '(longueur = 7) 
' categories '=> 
 tableau 
 16082 => 
 tableau 
' id '=> chaîne' 16082 '(longueur = 5) 
' Tag '=> chaîne' Auto & Motorrad '(longueur = 15) 
 51 => 
 Tableau 
' Id ' => chaîne '51' (longueur = 2) 
 'tag' => chaîne 'Blogosphäre' (longueur = 11) 
 66 => 
 tableau 
 ' id '=> chaîne' 66 '(longueur = 2) 
' tag '=> chaîne' Neues & Trends '(longueur = 14) 
 68 => 
 tableau [. __ __.] 'id' => chaîne '68' (longueur = 2) 
 'tag' => chaîne 'Privat' (longueur = 6)
15
streetparade

Vous pouvez accéder au tableau des balises inactives avec (en supposant que $ myArray contient le tableau)

$myArray['inactiveTags'];

Votre question ne semble pas aller au-delà de l'accès au contenu de la clé inactiveTags, je ne peux que spéculer sur votre objectif final.

La première clé: la paire de valeurs dans le tableau inactiveTags est

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

Pour accéder à la valeur de la balise, vous utiliseriez

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

Si vous souhaitez parcourir chaque élément inactiveTags, je suggère:

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

Cela affichera toutes les valeurs d'ID et de balise pour chaque inactiveTag

Edit :: Pour que les autres voient, voici un var_dump du tableau fourni dans la question car il n'est pas lisible

 tableau 
 'langues' => 
 tableau 
 76 => 
 tableau 
 'id' => chaîne '76' (longueur = 2) 
 'tag' => chaîne 'Deutsch' (longueur = 7) 
 'cibles' => 
 tableau 
 81 => 
 tableau 
 'id' => chaîne '81' (longueur = 2) 
 'tag' => chaîne 'Deutschland' (longueur = 11) 
 'balises' => 
 tableau 
 7866 => 
 tableau 
 'id' => chaîne '7866' (longueur = 4) 
 'tag' = > chaîne 'automobile' (longueur = 10) 
 17800 => 
 tableau 
 'id' => chaîne '17800' (longueur = 5) 
 'balise '=> chaîne' seat leon '(longueur = 9) 
 17801 => 
 tableau 
' id '=> chaîne' 17801 '(longueur = 5) 
 'tag' => chaîne 'seat leon cupra' (longueur = 15) 
 'inactiveTags' => 
 tableau 
 195 => 
 tableau 
 'id' => stri ng '195' (longueur = 3) 
 'tag' => chaîne 'auto' (longueur = 4) 
 17804 => 
 tableau 
 'id' => chaîne '17804' (longueur = 5) 
 'tag' => chaîne 'coupès' (longueur = 6) 
 17805 => 
 tableau 
 ' id '=> chaîne' 17805 '(longueur = 5) 
' tag '=> chaîne' fahrdynamik '(longueur = 11) 
 901 => 
 tableau 
 'id' => chaîne '901' (longueur = 3) 
 'tag' => chaîne 'fahrzeuge' (longueur = 9) 
 17802 => 
 tableau 
 'id' => chaîne '17802' (longueur = 5) 
 'tag' => chaîne 'günstige neuwagen' (longueur = 17) 
 1991 => 
 tableau 
 'id' => chaîne '1991' (longueur = 4) 
 'tag' => chaîne 'motorsport' (longueur = 10) 
 2154 => 
 tableau 
 'id' => chaîne '2154' (longueur = 4) 
 'tag' => chaîne 'neuwagen' (longueur = 8) 
 10660 => 
 tableau 
 'id' => chaîne '10660' (longueur = 5) 
 'tag' => chaîne 'siège' (longueur = 4) 
 17803 => 
 tableau 
 'id' => chaîne '17803' (longueur = 5) 
 'tag' => chaîne 'sportliche ausstrahlung' (longueur = 23) 
 74 => 
 Tableau 
 'Id' => chaîne '74' (longueur = 2) 
 'Tag' => chaîne 'web 2.0' (longueur = 7) 
 'categories' => 
 tableau 
 16082 => 
 tableau 
 'id' => chaîne '16082' (longueur = 5) 
 'tag' => chaîne 'Auto & Motorrad' (longueur = 15) 
 51 => 
 tableau 
 'id' => chaîne '51' (longueur = 2) 
 'Tag' => chaîne 'Blogosphäre' (longueur = 11) 
 66 => 
 Tableau 
 'Id' => chaîne '66' (longueur = 2) 
 'tag' => chaîne 'Neues & Trends' (longueur = 14) 
 68 => 
 tableau 
 'id' =>chaîne '68' (longueur = 2) 
 'tag' => chaîne 'Privat' (longueur = 6) 
23
Mike B

Si $a est le tableau transmis, $a[76][0]['id'] devrait donner '76' et $a[76][1]['id'] devrait donner '81', mais je ne peux pas tester car je n'ai pas PHP installé sur cette machine.

2
Benjamin Oakes

Concernant votre code: C'est un peu difficile à lire ... Si vous voulez essayer de tout voir au format tableau PHP, imprimez-le simplement. Cela pourrait aider:

<?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.
1
CodeJoust

Étude sur tableaux multidimensionnels . Cette question pourrait aider.

1
jjclarkson