Lire un array dans un array [Résolu]

- - Dernière réponse :  JejeScript - 19 mars 2013 à 23:53
Bonjour,

Je tente de construire une classe perso pour gérer des templates,
mais je me retrouve face à un casse tête que je n'arrive pas à résoudre.

je tente d'imbriquer des blocs, grâce à array et ensuite de les lire.

voici le code :

<?php
class template {

private $template;                // contenu fichier
private $fichier;                 // url fichier
// -------------
public $tableauVaraibleLibre;     // tableau des variables libres
// -------------
public $tableauNomBloc;           // tableau des noms des blocs
public $tableauVariableBloc;      // tableau des varaibles des blocs
public $tableauNomParent;         // tableau des blocs parents
// -------------
public $tableauVariableSousBloc;  // tableau des variables des sous bocs
// -------------

public function template($template) {
//on vérifie que le fichier template existe
if(is_file($template)) {
$this->template =  file_get_contents($template);
$this->fichier  = $template;
}
else {
echo 'Template - Erreur. L\'erreur retournée est  : 
template  '.$this->fichier.'  introuvable';		
}
}
// -------------

public function variableLibre($array) {
$this->tableauVaraibleLibre  = $array;
}
// -------------

public function variableBloc($bloc,$array) {
$this->tableauNomBloc[] = $bloc;
$nombreArray = count($array);
for($u=0; $u<$nombreArray; $u++) {
$this->tableauVariableBloc[] = $array[$u];
}
}
// ------------

public function sousbloc($sousB='', $nomSousB='') {
for($i=0; $i<count($this->tableauVariableBloc);$i++) {
foreach($this->tableauVariableBloc[$i] as $val) {
if(is_array($val)) {
$this->tableauNomParent[] = $i;
$this->tableauVariableSousBloc[] = $val;
}
}
}
}
// -------------
public function constructeur() {
}
}

// TEST //

$page = new template('test.html');
$page->variableLibre(array('MESSAGE'=>'un petit test de template', 'TEXTE'=>'un exemple de texte'));
$page->variableBloc('BLOC',
array(
array('TITRE'=>'titre 001', 'CONTENU'=>'contenu 001'),
array('TITRE'=>'titre 002', 'CONTENU'=>'contenu 002'),
array(
array('TITRE'=>'titre 011', 'CONTENU'=>'contenu 011'),
array('TITRE'=>'titre 012', 'CONTENU'=>'contenu 012'),
array(
array('TITRE'=>'titre 111', 'CONTENU'=>'contenu 111')
)
),
array('TITRE'=>'titre 003', 'CONTENU'=>'contenu 003'),
array('TITRE'=>'titre 004', 'CONTENU'=>'contenu 004')
)
);
$page->variableBloc('BLOC-2',
array(
array('TITRE'=>'titre 011', 'CONTENU'=>'contenu 011'),
array('TITRE'=>'titre 012', 'CONTENU'=>'contenu 012'),
array('TITRE'=>'titre 013', 'CONTENU'=>'contenu 013'),
array('TITRE'=>'titre 014', 'CONTENU'=>'contenu 014')
)
);
$page->sousbloc();
$page->constructeur();
print_r($page->tableauVariableSousBloc);
echo '

Nombre de Bloc recu : '. count($page->tableauNomBloc);
echo '
Nombre de tableau de variable recu : '.count($page->tableauVariableBloc);
echo '
Nombre de tableau parent recu : '.count($page->tableauNomParent);
echo '
Nombre de tableau de variable de sous bloc recu : '.count($page->tableauVariableSousBloc);
?>



Voici ce que j'obtiens grâce à print_r($page->tableauVariableSousBloc); :

<?php
Array ( 
[0] => Array ( 
[TITRE] => titre 011 
[CONTENU] => contenu 011 
) 
[1] => Array ( 
[TITRE] => titre 012 
[CONTENU] => contenu 012 
) 
[2] => Array ( 
[0] => Array ( 
[TITRE] => titre 111 
[CONTENU] => contenu 111 
) 
) 
) 
?>


comment aller chercher le array [2] et le remplacer par l'array [2][0]

Cordialement,

JéjéScript.

Si on ne réussi pas du premier coup, il faut se rappeler que le grand chêne aussi au début était un gland !
Afficher la suite 

Votre réponse

1 réponse

-2
Merci
Re, j'ai enfin réussi.

Cordialement,

JéjéScript.

Si on ne réussi pas du premier coup, il faut se rappeler que le grand chêne aussi au début était un gland !
Commenter la réponse de JejeScript

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.