[PHP] Réordonner un tableau [RESOLU]

WRInaute discret
Bonjour !

Je me prend la tête sur problème php depuis qques heures et je viens demander votre aide.

Voilà mon problème :

J'ai un tableau multidimensionnelle comme construit comme cela :
Code:
Array
(
    [0] => Array
        (   [reference] => xxxx1
            [quantite] => x1
            [prix] => xxx1
        )
    [1] => Array
        (  [reference] => xxxx2
            [quantite] => x2
            [prix] => xxx2
        )
    [2] => Array
        (   [reference] => xxxx3
            [quantite] => x3
            [prix] => xxx3
        )
...
)

Je voudrais réordonner ce tableau avec une liste de nouvelles clés.
Par exemple je reçois
Code:
$neworder=array (2,0,1);

Je voudrais donc que mon tableau [2] passe en [0] celui en [0]passe en [1] etc...

J'espère avoir été clair.
Merci d'avance pour votre aide :wink:

Bye,
 
WRInaute accro
Re:
PHP:
 Réordonner un tableau[/b]

Quelque-chose comme:

[code]
function myfunc($a)
{
  return $oldarray[$a];
}

$new_array = array_map("myfunc",$neworder)
[/code]

peut-être?

Jacques.
 
WRInaute impliqué
Re:
PHP:
 Réordonner un tableau[/b]

y a-t-il une logique quelconque dans le nouvel ordre ?
 
WRInaute discret
Re:
PHP:
 Réordonner un tableau[/b]

@Jcaron Merci Jacques je vais essayé ça !

@seebz La seule logique est qu'il n'y a qu'un seul changement d'ordre à chaque fois. 
Ainsi  $neworder pourra être : 
$neworder=array(2,0,1,)

mais pas 
$neworder=array(2,1,0)

J'explique ce que je veux faire ca aidera sans doute :
Je veux adapter ce plugin jquery à une aplication
[url=http://www.isocra.com/2008/02/table-drag-and-drop-jquery-plugin/]http://www.isocra.com/2008/02/table-drag-and-drop-jquery-plugin/[/url]
Voir le 2ème tableau pour voir ce que pourrait être $neworder
 
WRInaute accro
Re:
PHP:
 Réordonner un tableau[/b]

[url=http://php.net/manual/fr/function.sort.php]http://php.net/manual/fr/function.sort.php[/url] non ?
 
WRInaute impliqué
Re:
PHP:
 Réordonner un tableau[/b]

Pour une fonction, j'avais fait un truc un peu tordu.
Je sais pas si c'est adapté à ton cas mais voici toujours la source :

[code]            // Insère le caractère au bon endroit
	            array_splice(
	                $decoded, $i, count($decoded),
	                array_merge(array($n), array_slice($decoded, $i, count($decoded)))
	            );
[/code]
Ca insère le caractère [u]$n[/u] à l'emplacement [u]$i[/u] du tableau [u]$decoded[/u]

Bonne chance  :lol:
 
WRInaute discret
Re:
PHP:
 Réordonner un tableau[/b]

La solution de Jacques fonctionne (même si j'ai pas tout compris à cette fonction :-D) !!! \o/

 Merci beaucoup à toi ainsi qu'aux autres pour vos réponses rapides et efficaces ;-) !

Bye,
 
WRInaute impliqué
Cool, c'est vrai que la function de jacques rend bien..

Moi par contre, j'aime bien me prendre la tête :p
 
WRInaute discret
seebz a dit:
Moi par contre, j'aime bien me prendre la tête :p

J'ai un peu la même tendance que toi puisque au tout début j'étais aussi parti sur des combinaisons de array_merge/_slice/_splice à tout va.

Quand je vois la simplicité de la solution de Jacques ... j'ai encore bcp de travail :roll: :D
 
WRInaute accro
C'est juste parce que je programme beaucoup en perl, et que map est probablement l'une des fonctions les plus utilisées (la syntaxe est plus pratique en perl).

Ceci dit, tout dépend comment tu obtiens ton tableau qui donne l'ordre: il est a priori lui-même obtenu par des combinaisons de splice, slice, merge, whatever. Donc au bout du compte ça peut être une bonne idée de le faire directement sur le tableau final.

Jacques.
 
Discussions similaires
Haut