par
AB » 30 janv. 2010, 18:02
ouai. Ta façon de faire est intéressante, néanmoins je la trouve avancée à mon niveau. Ceci dit, elle mérite réflexion.
Oui y'a du très bon (le début) et du très compliqué (la suite) dont on se demande la nécessité
C'est vrai que dans les précédents topic je voulais t'apprendre quelques fonctions de tableaux, mais là, c'est du grandiose, niveau artistique ça touche au sublime
Parce que je vois pas la différence de résultat entre les ces deux façons de faire :
$data = file('data.txt');
$test = array();
foreach($data as $item)
{
$line = preg_split('/[-\+]/', preg_replace('/\s+/', '', $item));
foreach ($line as $key => $value)
{
$test[$key][] = $value;
}
}
echo '<pre>';echo 'test = ';
print_r($test);
echo '</pre>';
$array = array();
foreach($data as $item)
{
$line = preg_split('/[-\+]/', preg_replace('/\s+/', '', $item));
$fill = array_map('chr', array_keys($line));
$line = array_combine($fill, $line);
$array = array_merge_recursive($array, $line);
}
$array = array_combine(array_flip(array_keys($array)), $array);
echo '<pre>';echo 'array = ';
print_r($array);
echo '</pre>';
Par contre niveau performances, plus tes entrées $data seront grandes, plus la différence de traitement entre les deux façons de faire sera importante. Sur quelques entrées cela ne varie "que du simple au double" par contre pour m'amuser j'ai fait un test sur 3 000 entrées, la deuxième solution n'est que 234 fois plus lente que la première, une broutille
Comme quoi la simplicité peut payer, ou alors y'a un truc qui m'échappe

[quote="diabless6"]ouai. Ta façon de faire est intéressante, néanmoins je la trouve avancée à mon niveau. Ceci dit, elle mérite réflexion.[/quote]
Oui y'a du très bon (le début) et du très compliqué (la suite) dont on se demande la nécessité #-o #-o #-o
C'est vrai que dans les précédents topic je voulais t'apprendre quelques fonctions de tableaux, mais là, c'est du grandiose, niveau artistique ça touche au sublime :mrgreen:
Parce que je vois pas la différence de résultat entre les ces deux façons de faire :
[php]
$data = file('data.txt');
$test = array();
foreach($data as $item)
{
$line = preg_split('/[-\+]/', preg_replace('/\s+/', '', $item));
foreach ($line as $key => $value)
{
$test[$key][] = $value;
}
}
echo '<pre>';echo 'test = ';
print_r($test);
echo '</pre>';
$array = array();
foreach($data as $item)
{
$line = preg_split('/[-\+]/', preg_replace('/\s+/', '', $item));
$fill = array_map('chr', array_keys($line));
$line = array_combine($fill, $line);
$array = array_merge_recursive($array, $line);
}
$array = array_combine(array_flip(array_keys($array)), $array);
echo '<pre>';echo 'array = ';
print_r($array);
echo '</pre>';[/php]
Par contre niveau performances, plus tes entrées $data seront grandes, plus la différence de traitement entre les deux façons de faire sera importante. Sur quelques entrées cela ne varie "que du simple au double" par contre pour m'amuser j'ai fait un test sur 3 000 entrées, la deuxième solution n'est que 234 fois plus lente que la première, une broutille :mrgreen:
Comme quoi la simplicité peut payer, ou alors y'a un truc qui m'échappe :-k