Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

CLASS DE LIBRAIRIE DE FONCTION SUR LES ARRAYS, INSPIRÉE DE PHP


Information sur la source

Catégorie :MX2004: CLASS Classé sous : array, utils, class, function, php Niveau : Initié Date de création : 16/12/2005 Date de mise à jour : 17/12/2005 09:00:24 Vu / téléchargé: 6 802 / 434

Note :
Aucune note

Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note


Description

// CLASS 2006 /////////
// Arr
// 0.0.3
// HopemultiMedias.com
///////////////////////

/**
* Toutes les fonctions ici, ont leurs noms venant de la version PHP, à l'exception de "move()" n'existant pas en PHP.
* Toutes acceptant le même nombre et le même type de paramètre que leurs consoeurs PHP, à l'exception de "rand()".
* */

// Retourne la position du pointeur du tableau passé, ou null.
public static function pos ( a :Array ) :Number

// Reinitie la position du pointeur du tableau à 0. Crée le pointeur si nécessaire.
public static function reset ( a :Array ) :Object

// Renvoie l'élément actuel indiqué par le pointeur interne du tableau.
// Si le pointeur n'existe pas encore, en créer un par appel à "reset()" et renvoie donc l'élément 0.
public static function current ( a :Array ) :Object

// Déplace le pointeur interne du tableau jusqu'au dernier élément et retourne sa valeur.
// Si le pointeur n'existe pas encore, en créer un par appel à "reset()".
public static function end ( a :Array ) :Object

// Recule le pointeur et retourne le nouvel élément indiquer par le pointeur ou NULL s'il n'y a plus d'éléments.
// Si le pointeur n'existe pas encore, renvoie NULL sans en créer.
public static function prev ( a :Array ) :Object

// Avance le pointeur et retourne le nouvel élément indiquer par le pointeur ou NULL s'il n'y a plus d'éléments.
// Si le pointeur n'existe pas encore, renvoie NULL sans en créer.
public static function next ( a :Array ) :Object

// Déplace le pointeur sur la nouvel position passée et en retourne l'élément, SI, la nouvel position
// du pointeur est bien un entier supérieur à 0 et inférieur à la longeur du tableau . Sinon échoue et renvoie NULL.
public static function move ( a :Array, nPos :Number ) :Object

// Retourne l'array passée, en array contenant des "lignes" object paramètrer selon la liste de nom des arguments passés.
public static function list ( a :Array, _argus_ ) :Array

// Mélange l'array passée et la retourne
public static function shuffle ( a :Array ) :Array

// Retourne un objet dont le nom des variables sont les éléments de l'array "a" avec pour valeur,
public static function combine ( a :Array, b :Array ) :Object

// Retourne une copie de l'array passée, composée de sous-array de la longeur passée.
public static function chunk ( a :Array, nLength :Number ) :Array

// Retourne un "object" contenant le nombre de fois que se répéte les éléments de l'array passée.
public static function countVal ( a :Array ) :Object

// Renvoie une array des éléments ne figurant que dans "a" OU que dans "b".
public static function diff ( a :Array, b :Array ) :Array

// Retourne une array des éléments figurants dans "a" et dans "b".
public static function intersect ( a :Array, b :Array ) :Array

// Retourne la somme de tous les éléments de l'array passée.
public static function sum ( a :Array ) :Number

// Renvoie le fruit de la multiplication de tous les éléments entre eux.
public static function product ( a :Array ) :Number

// Applique la fonction passée sur chaque élément de l'array passée.
public static function walk ( a :Array, fCallback :Function, _argus_ ) :Void

// Contrairement à la version PHP renvoyant une Array d'indice, cette version retourne
// une array d'éléments, de la longeur passée, choisis au hazard du tableau passé.
public static function rand ( a :Array, nLength :Number ) :Array

// Retourne une copie de l'array passée, nettoyée de tous ses doublons.
public static function unique ( a :Array ) :Array

// Indique si l'array passée contient l'élément passé.
public static function has ( a :Array, oItem ) :Boolean
 

Source

  • Code du Fla joint :
  • import hope.core.Arr ;
  • myNums = new Array ('uno','dos','tres','cuatro','cinqo','seis','siete') ;
  • Arr.reset(myNums) ;
  • num = Arr.end(myNums) ;
  • while ( num ) { trace(">"+num) ; num=Arr.prev(myNums) } ;
  • // Affiche : >siete > seis >cinqo >cuatro >tres >dos >uno
  • i = 10 ;
  • while ( (i-=3)>-3 ) { num=Arr.move(myNums,i) ; trace(">"+num) } ;
  • // Affiche : >null >cinqo >dos >null
  • users = new Array ( "Jean",30,"Paris","sans emploi",
  • true,"Alex",45,"Mans", "boulanger",false,
  • "Paul",25,"Lyon","ouvrier",true,"Anne",
  • 43,"Laval","PDG",false ) ;
  • list = Arr.list( users, "name",null,"city","job",null ) ;
  • line = Arr.reset(list) ;
  • while ( line ) {
  • trace ( ">"+line.name+","+line.city+","+line.job ) ;
  • line = Arr.next(list) ;
  • } // Affiche : >Jean,Paris,sans emploi >Alex,Mans,boulanger >Paul,Lyon,ouvrier >Anne,Laval,PDG
  • panier = [] ; boule=0 ; while( ++boule<50 ) panier.push(boule) ;
  • Arr.shuffle(panier) ; tirage = panier.splice(0,6) ; trace(">"+tirage) ; // Affiche un tirage de loto !!!
  • panier = panier.concat(tirage) ; // On remet les boules !
  • trace ( ">"+Arr.rand(panier,6) ) ; // Affiche un nouveau tirage !!!
  • trace ( ">"+(Arr.rand(panier,100)).length ) ; // Affiche : >49, puisque "panier" n'a que 49 éléments
  • trace ( "Arr.combine() :" ) ;
  • titles = myNums.concat() ;
  • values = new Array (1,2,null,4,5,6) ;
  • TRAD = Arr.combine(titles,values) ;
  • for ( i in TRAD ) trace ( ">"+i+" est "+TRAD[i] ) ;
  • // Affiche : >siete est undefined >seis est 6 >cinqo est 5 >cuatro est 4 >tres est null >dos est 2 >uno est 1
  • myMap = ['a','b','c','d','f','g','h','i','j'] ;
  • a2D = Arr.chunk(myMap,4) ;
  • i = -1 ; while ( ++i < a2D.length ) trace ( ">"+a2D[i] ) ;// Affiche : >a,b,c,d >f,g,h,i >j
  • values = ["a",4,1,"a",8,5,"a","b",5,"a"] ;
  • myCount= Arr.countVal(values) ;
  • for ( i in myCount ) trace ( ">"+i+":"+myCount[i]+" fois" ) ;
  • // Affiche : >b:1 fois >5:2 fois >8:1 fois >1:1 fois >4:1 fois >a:4 fois
  • mapA = ['Madrid','Lyon','Rome','Berlin','NewYork'] ;
  • mapB = ['Paris','Madrid','Londres','Paris','NewYork','Rome'] ;
  • trace ( ">"+Arr.diff(mapA,mapB) ) ; // Affiche : >Lyon,Berlin,Paris,Londres;
  • trace ( ">"+Arr.intersect(mapA,mapB) ) ; // Affiche : >Madrid,Rome,NewYork
  • values = [1,2,5,10] ;
  • trace ( ">"+Arr.product(values) ) ; // Affiche : >100
  • trace ( ">"+Arr.sum(values) ) ; // Affiche : >18;
  • function cutCity ( ITEM, i, n ) { return ITEM.substr(i,n).toUpperCase() ; }
  • Arr.walk(mapB,cutCity,0,3) ; trace(">"+mapB) ; // Affiche : >PAR,MAD,LON,PAR,NEW,ROM
  • users = ['PAUL','paul','Céline','Alex','Céline','PAUL','Ana'] ;
  • trace(">"+Arr.unique(users) ) ; // Affiche : >paul,Alex,Ana
  • trace(">"+Arr.has(users,'Ana') ) ; // Affiche : >true
  • trace(">"+Arr.has(users,'cÉliNe') ) ; // Affiche : >false
Code du Fla joint :
	

	import hope.core.Arr ;
	

	myNums = new Array ('uno','dos','tres','cuatro','cinqo','seis','siete') ;
	Arr.reset(myNums) ;
	num = Arr.end(myNums) ;
	while ( num ) { trace(">"+num) ; num=Arr.prev(myNums) } ;
	// Affiche : >siete > seis >cinqo >cuatro >tres >dos >uno
	

	i = 10 ;
	while ( (i-=3)>-3 ) { num=Arr.move(myNums,i) ; trace(">"+num) } ;
	// Affiche : >null >cinqo >dos >null
		

	users = new Array ( "Jean",30,"Paris","sans emploi",
			    true,"Alex",45,"Mans", "boulanger",false,
			    "Paul",25,"Lyon","ouvrier",true,"Anne",
			    43,"Laval","PDG",false ) ;
	list = Arr.list( users, "name",null,"city","job",null ) ;
	line = Arr.reset(list) ;
	while ( line ) {
		trace ( ">"+line.name+","+line.city+","+line.job ) ;
		line = Arr.next(list) ;
	} // Affiche : >Jean,Paris,sans emploi >Alex,Mans,boulanger >Paul,Lyon,ouvrier >Anne,Laval,PDG
	
	
	panier = [] ; boule=0 ; while( ++boule<50 ) panier.push(boule) ;
	Arr.shuffle(panier) ; tirage = panier.splice(0,6) ; trace(">"+tirage) ; // Affiche un tirage de loto !!!
	panier = panier.concat(tirage) ; // On remet les boules !
	trace ( ">"+Arr.rand(panier,6) ) ; // Affiche un nouveau tirage !!!
	trace ( ">"+(Arr.rand(panier,100)).length ) ; // Affiche : >49, puisque "panier" n'a que 49 éléments
	
	
	trace ( "Arr.combine() :" ) ;
	titles = myNums.concat() ;
	values = new Array (1,2,null,4,5,6) ;
	TRAD = Arr.combine(titles,values) ;
	for ( i in TRAD ) trace ( ">"+i+" est "+TRAD[i] ) ;
	// Affiche : >siete est undefined >seis est 6 >cinqo est 5 >cuatro est 4 >tres est null >dos est 2 >uno est 1


	myMap = ['a','b','c','d','f','g','h','i','j'] ;
	a2D = Arr.chunk(myMap,4) ;
	i = -1 ; while ( ++i < a2D.length ) trace ( ">"+a2D[i] ) ;// Affiche : >a,b,c,d >f,g,h,i >j
	
	
	values = ["a",4,1,"a",8,5,"a","b",5,"a"] ;
	myCount= Arr.countVal(values) ;
	for ( i in myCount ) trace ( ">"+i+":"+myCount[i]+" fois" ) ; 
	// Affiche : >b:1 fois >5:2 fois >8:1 fois >1:1 fois >4:1 fois >a:4 fois
	
	
	mapA = ['Madrid','Lyon','Rome','Berlin','NewYork'] ;
	mapB = ['Paris','Madrid','Londres','Paris','NewYork','Rome'] ;
	trace ( ">"+Arr.diff(mapA,mapB) ) ; // Affiche : >Lyon,Berlin,Paris,Londres;
	trace ( ">"+Arr.intersect(mapA,mapB) ) ; // Affiche : >Madrid,Rome,NewYork
	
	
	values = [1,2,5,10] ;
	trace ( ">"+Arr.product(values) ) ; // Affiche : >100
	trace ( ">"+Arr.sum(values) ) ; // Affiche : >18;
	
	
	function cutCity ( ITEM, i, n ) { return ITEM.substr(i,n).toUpperCase() ; }
	Arr.walk(mapB,cutCity,0,3) ; trace(">"+mapB) ; // Affiche : >PAR,MAD,LON,PAR,NEW,ROM
	
	
	users = ['PAUL','paul','Céline','Alex','Céline','PAUL','Ana'] ;
	trace(">"+Arr.unique(users) ) ; // Affiche : >paul,Alex,Ana
	trace(">"+Arr.has(users,'Ana') ) ; // Affiche : >true
	trace(">"+Arr.has(users,'cÉliNe') ) ; // Affiche : >false	

Fichier Zip

Pour les "Membres Club", vous pouvez télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !
  • DemoArr.zipTélécharger ce fichier [Réservé aux membres club]36 493 octets

Télécharger le zip

Historique

17 décembre 2005 08:57:56 :
Mise à jour de la fonction "walk()", celle-ci agit maitenant,comme pour PHP, sur l'array passée. Remplacement de "a.length" par "n" car je suis entièrement d'accord avec SuperDevy, même si j'ai oublié de la faire pour certaine fonction. Rectifié !
17 décembre 2005 09:00:24 :
Actualization du code de démo.

Commentaires et avis

signaler à un administrateur
Commentaire de SuperDevy le 16/12/2005 22:45:23

Super pratique !

Juste une petite suggestion d'optimisation : évite de mettre array.lenght dans les boucles, les fonctions "unique" et "has" sont bien conçues, mais il faudrait faire la même chose pour "sum" et "product" ...

signaler à un administrateur
Commentaire de 120120 le 03/02/2007 12:33:06

Merci beaucoup pour cette superbe classe :)) Elle ma permit de gagner vraiment beaucoup de temps :))

Super bon boulot :)

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

re gotoAndPlay impossible... [ par stown ] d&#233;sol&#233; de reposter mais sa me soule! et la serieux sa m'&#233;n&#233;rve je compren pas pk sa marche pas!voila en gros ce que j'ai:sur la 1e Var de php vers flas et action..... [ par jacknikolson ] salut &#224; tous.je cherche &#224; faire communiquer flash et php.C'est mon tout premier essai et je ne comprends pas tout....j'ai un txt dynamique s Problème de menu [ par Aleanar ] BonjourJe voudrais créer un menu en mettant dans deux tableau les nom d'occurence des boutons et les les liens de chaque boutons.Sauf que ça ne marche Probleme AS pour graphique dynamique [ par spider987 ] Bonjour tout le monde,Alors voici mon probl&#232;me :J'ai cr&#233;&#233; une petit annim flash avec trois calque + 1 Pour les ASCelle-ci charge des va Problème de chargement array [ par adramele ] Bonjour à tous !Je suis face à un soucis... je débute. Ce code va chercher une variable faite d'une séquence avec virgule dans un fichier php pour ens Reconstitution d'un code AS OO [ par Maximee ] Bonjour à tous!Je cherche à obtenir un fichier .FLA valide à partir d'un .SWF (pour mon usage perso).J'ai donc décompilé le .SWF mais la structure de jeu de cartes [ par FannyC ] petite erreur de script... Il me dit: "**Avertissement** Séquence = distribuer, calque = jeu, image = 54 :Ligne 1 : L'identifiant non sensible à la ha Pb de connection BDD Flash/Php [ par CyAn ] Bonjour,J'ai besoin de vos lumières, j'essaye de récuperer des données qui se trouvent dans ma base pour ensuite les afficher dans un clip. Pour l'ins XML Loader Class ou Non ? [ par Orange73 ] Hello,En faisant des recherche je suis tombé sur une Class pour loader plusieurs XML dans la meme anim flash : http://www.pixel2life.com/forums/index. ActionScripte, Aide pour simplifier mon code svplé. [ par reacen ] salut, je suis sur que c'est trop demander cette fois, et que personne ne va repondre.Mais j'essaye commem :)Salut a tous, je suis un peu debutant en


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.