php lire clé multidimensionelle ( variable ) sur un array

php lire clé multidimensionelle ( variable ) sur un array - PHP - Programmation

Marsh Posté le 14-06-2014 à 16:54:38    

Bonjour à tous
Je recherche à effectuer la même opération, plus simplement qu'en passant par un eval, la chose est d'avoir une variable, qui constitue la clé multidimensionnelle ... ou une façon plus élegante de lire ce index

Code :
  1. $x=Array(Array(0=>'0',1=>Array(2=>'valeur2')));
  2. $k='[0][1][2]';
  3. echo eval("return gettype(\$x$k).'='.\$x$k;" );
 

Je suis un peu bloqué j'ai tenté les syntaxes $x{$k}, mais $x[$k] ne passera pas c'est certain ..
Merci pour vos lumières


Message édité par grosbin le 14-06-2014 à 16:56:05

---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Marsh Posté le 14-06-2014 à 16:54:38   

Reply

Marsh Posté le 16-06-2014 à 14:50:46    

Salut,
 
Pourquoi pas une fonction de ce genre :
 
 

Code :
  1. $x=Array(Array(0=>'0',1=>Array(2=>'valeur2')));
  2.     $k='[0][1][2]';
  3.     echo eval("return gettype(\$x$k).'='.\$x$k;" );
  4. function array_dig_key($array, $key) {
  5.  if(!preg_match_all('#\[(.+)\]#U', $key, $match))
  6.   return null;
  7.  $keys = $match[1];
  8.  while(count($keys)) {
  9.   $key = array_shift($keys);
  10.   if(!array_key_exists($key, $array))
  11.    return null;
  12.   $array = $array[$key];
  13.  }
  14.  return $array;
  15. }
  16. echo array_dig_key($x, $k);

Reply

Marsh Posté le 16-06-2014 à 15:13:25    

j'y pensais, j'avais zappé que je pouvais extraire avec le preg_match, bien joué, c'est élégant :jap:


---------------
Photos Panoramiques Montagnes Haute Savoie
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed