Page 1 sur 1

parse fichier et récurssivité :)

Posté : 30 juin 2014, 14:39
par telnes
hello

exemple de fichier
param1 value1 value2 value3
param1 valueS value3 value5 value8
param3 value1 value2
obj1 valueA valueB valueC
obj2 valueZ valueD valueG
param4 value9 value4
obj3 valueG
obj4 valueU valueP
param5 value0 value3
les objets sont rattachés au param du dessus via :espace: puis mots

j'ai un code qui récupère fait un tableau du tout mais c'est pas récursive (donc les niveau :espace::espace: mots ... ca passe pas :))

array( 'param1' => array( 'value' => ...

une idée pour faire ca en récursif ?

Re: parse fichier et récurssivité :)

Posté : 30 juin 2014, 16:04
par moogli
salut,

c'est pas clair ta demande

tu veux ça comme tableau au final ?
<?php
$x = [
    'param1' => ['value1', 'value2', 'value3', 'valueS', 'value3', 'value5', 'value8'],
    'param3' => ['value', 'value2'],
    'obj1'   => ['valueA', 'valueB', 'valueC'],
    'obj2'   => ['valueZ', 'valueD', 'valueG'],
    'param4' => ['value9', 'value4'],
    'obj3'   => ['valueG'],
    'obj4'   => ['valueU valueP'],
    'param5' => ['value0 value3']
];
si oui ce n'est pas super compliqué, il 'suffit' de vérifier si l'index existe déjà dans le tableau, si oui du ajoute (si tu utilise toujours $tab[$param][] = $value cela ne pose pas de soucis).

Ceci dit j'ai p'tet mal compris la question ;)

@+

Re: parse fichier et récurssivité :)

Posté : 30 juin 2014, 16:09
par Elie
C'est pas tres joli comme code mais ca marche :)
<?php
	$fichier = 'param1 value1 value2 value3
param1 valueS value3 value5 value8
param3 value1 value2
obj1 valueA valueB valueC
obj2 valueZ valueD valueG
param4 value9 value4
obj3 valueG
obj4 valueU valueP
param5 value0 value3';

	$array = array();
	$explode = explode("\n", $fichier);
	foreach($explode as $v) {
		$explode2 = explode(' ', $v);
		foreach($explode2 as $k => $val) {
			if($k == 0) { $key = $val; } else { $array[$key][] = $val; }
		}
	}
	
	print_r($array);
	
?>