[résolu] Croiser les résultats d'un tableau

Eléphant du PHP | 256 Messages

28 déc. 2011, 14:37

Bonjour,

Je souhaiterai croiser (ou alterner) les résultats d'un tableau...

Je m'explique... Mon tableau contient...
array('A', 'B', 'C', 'D', 'E')
et je voudrai obtenir...
array('A', 'D', 'C', 'B', 'E')
En fait, et comme vous allez me le demander (!), c'est pour calculer et ordonner des variations de couleurs.

J'ai déniché un script qui calcule les variations entre un couleur 'A' et une couleur 'B' selon le nombre attendu de résultats. Problème, si je pars du bleu vers le rouge en demandant six couleurs intermédiaires, mes couleurs manquent de contraste.

Le code ressemble à...
for($i = 0; $i <= $colorsteps; $i++)
{
...
$gradientcolors[] = implode(NULL, $hexrgb);
}
foreach($gradients as $gradient)
{
echo...
}
J'ai testé avec array_reverse ou array_flip, mais je n'ai pas avancé.

Merci pour votre aide. :)

Cordialement,

Gaspard
Modifié en dernier par Castor Gaspard le 28 déc. 2011, 16:55, modifié 2 fois.

ViPHP
xTG
ViPHP | 7331 Messages

28 déc. 2011, 14:40

Euh croiser ok mais...
Ton croisement a une suite logique ? Car je n'en trouve pas dans ton exemple. :?
A -> D (second mais en partant de la fin ?) -> C (euh pourquoi lui ?)

Eléphant du PHP | 256 Messages

28 déc. 2011, 14:58

Merci xTG pour ta remarque, qui montre combien mon explication est embrouillée.

Oui, une suite logique...

Si j'ai...
bleu foncé
bleu
bleu clair
rouge clair
rouge
rouge foncé
Je veux...
bleu foncé
rouge
bleu clair
rouge clair
bleu
rouge foncé
Ai-je posé le problème plus clairement ? :mrgreen:

En fait, ce contraste me sera utile pour attribuer des couleurs à des graphiques.

Merci.

Gaspard
Modifié en dernier par Castor Gaspard le 28 déc. 2011, 15:26, modifié 1 fois.

ViPHP
ViPHP | 2577 Messages

28 déc. 2011, 15:25

Bonjour,

Le problème, est qu'est ce qui te fait choisir cet ordre ? ou plutôt quelles sont les règles pour ordonner selon l'ordre que tu indiques et non pas un autre ordre.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

28 déc. 2011, 15:27

Nope, c'est pas plus clair... tu as donné un exemple, pas la règle que tu veux établir... et tant que tu n'auras pas cette règle il ne sera pas possible de trouver l'algo à mettre en place :)

Par ce que pour le moment, la règle pourrait être simplement : inverser le 2ème élément et l'avant dernier élément du tableau.
Mais quid d'un tableau avec 2, 3 et 10 valeurs ? est-ce qu'il n'y a que ces deux index à inverser ou est-ce plus compliqué que ça ?

(si faut juste permuter, il suffit d'une variable temporaire dans lequel tu stockes ton 2ème élément, puis tu remplace la valeur de l'index 2 par la valeur de l'avant dernier, et enfin tu remplaces la valeur de l'avant dernier par la valeur de ta variable temporaire :))

Edit : raah ça commence à bien faire Mazarini !! ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 2577 Messages

28 déc. 2011, 15:56

raah ça commence à bien faire Mazarini !! ;)
Je suis 3 fois moins bavard donc facilement plus rapide :p

Eléphant du PHP | 256 Messages

28 déc. 2011, 16:54

Bonjour,

Je vais arrêter ici ce Post en mettant "résolu".

Car si mon problème est difficile à formuler, ça signifie plus ou moins qu'il échappe à une solution logique.

Au moins, vos remarques furent éclairantes.

D'ailleurs, j'ai une question plus intéressante à poser, simple à expliquer, mais encore insoluble par mon esprit : je change donc de sujet. :mrgreen:

Merci encore.

Gaspard