Probleme array
Résolu
graffer
Messages postés
35
Date d'inscription
Statut
Membre
Dernière intervention
-
Utilisateur anonyme -
Utilisateur anonyme -
Bonjour,
c'est dans un exemple https://www.php.net/manual/en/function.sort.php
et voici ce qui est cense sortir a l'ecran
output:
1 => (eran ,30)
2 => (naama ,29)
3 => (a ,11)
4 => (b ,51)
5 => (z ,5)
now sorted:
5 => (z ,5)
3 => (a ,11)
2 => (naama ,29)
1 => (eran ,30)
4 => (b ,51)
Premierement ca dis function inconnue sortByFunc et puis si je lui ajoutes function devant sortByFunc ca me dis ceci comme erreur
Parse error: syntax error, unexpected '(', expecting '&' or T_VARIABLE in /UNIONFS/opt/lampp/htdocs/1/nume1.php on line 13
Ou est l'erreur ? ou plutot quelle serait la solution ?
c'est dans un exemple https://www.php.net/manual/en/function.sort.php
<?
$arr = array(
1 => array('name' => 'eran', 'age' => 30),
2 => array('name' => 'naama', 'age' => 29),
3 => array('name' => 'a', 'age' => 11),
4 => array('name' => 'b', 'age' => 51),
5 => array('name' => 'z', 'age' => 5),
);
foreach($arr as $key => $val) {
echo "<br> $key => (" . $val['name'] . " ," . $val['age'] . ")";
}
sortByFunc($arr,create_function('$element','return $element["age"];'));
echo "<br> now sorted:";
foreach($arr as $key => $val) {
echo "<br> $key => (" . $val['name'] . " ," . $val['age'] . ")";
}
;?>
et voici ce qui est cense sortir a l'ecran
output:
1 => (eran ,30)
2 => (naama ,29)
3 => (a ,11)
4 => (b ,51)
5 => (z ,5)
now sorted:
5 => (z ,5)
3 => (a ,11)
2 => (naama ,29)
1 => (eran ,30)
4 => (b ,51)
Premierement ca dis function inconnue sortByFunc et puis si je lui ajoutes function devant sortByFunc ca me dis ceci comme erreur
Parse error: syntax error, unexpected '(', expecting '&' or T_VARIABLE in /UNIONFS/opt/lampp/htdocs/1/nume1.php on line 13
Ou est l'erreur ? ou plutot quelle serait la solution ?
5 réponses
Bonjour
Dans l'exemple que tu cites, la fonction sortByFunc est effectivement définie un peu plus haut, ce qu'on ne voit pas dans ton code.
Quand tu dis que tu ajoutes function devant, veux-tu dire que tu l'ajoutes simplement devant sortByFunc($arr,create_function('$element','return $element["age"];')); ? Ça, c'est sûr que c'est incorrect.
Dans l'exemple que tu cites, la fonction sortByFunc est effectivement définie un peu plus haut, ce qu'on ne voit pas dans ton code.
Quand tu dis que tu ajoutes function devant, veux-tu dire que tu l'ajoutes simplement devant sortByFunc($arr,create_function('$element','return $element["age"];')); ? Ça, c'est sûr que c'est incorrect.
Bonjour le père
Effectivement si j'ajoutes function devant sortByFunc($arr,create_function('$element','return $element["age"];'));
alors ca me dis
1 => (eran ,30)
2 => (naama ,29)
3 => (a ,11)
4 => (b ,51)
5 => (z ,5)
Fatal error: Call to undefined function sortByFunc() in /UNIONFS/opt/lampp/htdocs/1/nume0.php on line 13
Parse error: syntax error, unexpected '(', expecting '&' or T_VARIABLE in /UNIONFS/opt/lampp/htdocs/1/nume0.php on line 13
et si je ne rajoutes pas function devant
sortByFunc($arr,create_function('$element','return $element["age"];'));
ca me dis
Parse error: syntax error, unexpected '(', expecting '&' or T_VARIABLE in /UNIONFS/opt/lampp/htdocs/1/nume0.php on line 13
donc ca serait une erreur de syntaxe ou bien mauvase organisation du code .
Effectivement si j'ajoutes function devant sortByFunc($arr,create_function('$element','return $element["age"];'));
alors ca me dis
1 => (eran ,30)
2 => (naama ,29)
3 => (a ,11)
4 => (b ,51)
5 => (z ,5)
Fatal error: Call to undefined function sortByFunc() in /UNIONFS/opt/lampp/htdocs/1/nume0.php on line 13
Parse error: syntax error, unexpected '(', expecting '&' or T_VARIABLE in /UNIONFS/opt/lampp/htdocs/1/nume0.php on line 13
et si je ne rajoutes pas function devant
sortByFunc($arr,create_function('$element','return $element["age"];'));
ca me dis
Parse error: syntax error, unexpected '(', expecting '&' or T_VARIABLE in /UNIONFS/opt/lampp/htdocs/1/nume0.php on line 13
donc ca serait une erreur de syntaxe ou bien mauvase organisation du code .
Tout ceci est parfaitement normal.
Tu utilises une fonction sans l'avoir définie.
Et il ne suffit pas de jeter le mot 'function' au hasard au milieu d'un script (car ça n'a aucun sens là où tu essayes de le mettre) pour définir une fonction.
Prends le temps de lire complètement l'exemple sur lequel tu te bases et ma première réponse : il y a l'explication.
Tu utilises une fonction sans l'avoir définie.
Et il ne suffit pas de jeter le mot 'function' au hasard au milieu d'un script (car ça n'a aucun sens là où tu essayes de le mettre) pour définir une fonction.
Prends le temps de lire complètement l'exemple sur lequel tu te bases et ma première réponse : il y a l'explication.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Effectivement merci le père
Ce que je croyais etre la function ne l'etait pas
La function se trouver plus haut mais pas reprise dans l'exemple
Que veut tu on apprend chaque jour un peu plus
Voici la function a rajouter a l'exemple pour que cela fonctionne
function sortByFunc(&$arr, $func) {
$tmpArr = array();
foreach ($arr as $k => &$e) {
$tmpArr[] = array('f' => $func($e), 'k' => $k, 'e' =>&$e);
}
sort($tmpArr);
$arr = array();
foreach($tmpArr as &$fke) {
$arr[$fke['k']] = &$fke['e'];
}
}
Un grand merci encore pour ton aide
Ce que je croyais etre la function ne l'etait pas
La function se trouver plus haut mais pas reprise dans l'exemple
Que veut tu on apprend chaque jour un peu plus
Voici la function a rajouter a l'exemple pour que cela fonctionne
function sortByFunc(&$arr, $func) {
$tmpArr = array();
foreach ($arr as $k => &$e) {
$tmpArr[] = array('f' => $func($e), 'k' => $k, 'e' =>&$e);
}
sort($tmpArr);
$arr = array();
foreach($tmpArr as &$fke) {
$arr[$fke['k']] = &$fke['e'];
}
}
Un grand merci encore pour ton aide