Précédent   Forum des professionnels en informatique > PHP > Langage > Fonctions
Fonctions Forum d'entraide sur les fonctions PHP. Avant de poster -> FAQ fonctions et Sources diverses
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/11/2011, 15h34   #1
Membre éprouvé
 
Homme Gaetan
Webmaster
Inscription : janvier 2007
Messages : 386
Détails du profil
Informations personnelles :
Nom : Homme Gaetan
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : janvier 2007
Messages : 386
Points : 441
Points : 441
Envoyer un message via MSN à Gaetan_
Par défaut Array : x derniers éléments

Bonjour,

Ma question se résume au titre, je cherche à conserver uniquement les 12 derniers éléments de mon array.

Google sur ce coup n'est pas ami.

Quelqu'un aurait il la solution ?

En vous remerciant.
Gaetan_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 15h42   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
avec un array_slice
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/11/2011, 15h53   #3
Membre éprouvé
 
Homme Gaetan
Webmaster
Inscription : janvier 2007
Messages : 386
Détails du profil
Informations personnelles :
Nom : Homme Gaetan
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : janvier 2007
Messages : 386
Points : 441
Points : 441
Envoyer un message via MSN à Gaetan_
Super, merci à toi !

bonne fin de journée
Gaetan_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 16h15   #4
Membre éprouvé
 
Homme Gaetan
Webmaster
Inscription : janvier 2007
Messages : 386
Détails du profil
Informations personnelles :
Nom : Homme Gaetan
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : janvier 2007
Messages : 386
Points : 441
Points : 441
Envoyer un message via MSN à Gaetan_
Je ne comprends pas, je fais :

Code php :
1
2
3
$conso = explode(',', $history);
unset($conso['0']);
print_r(array_slice($conso, 11));

qui me donne :
Citation:
Array ( [0] => 6 [1] => 5 [2] => 5 [3] => 4 [4] => 5 [5] => 2 [6] => 4 [7] => 3 [8] => 6 [9] => 5 [10] => 1 [11] => 6 [12] => 3 [13] => 5 [14] => 4 [15] => 5 [16] => 2 [17] => 1 [18] => 4 [19] => 4 [20] => 6 [21] => 4 [22] => 3 [23] => 2 [24] => 4 )
Gaetan_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 16h17   #5
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
le premier paramètre c'est offset, t'attendais quoi ?
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 16h20   #6
Membre éprouvé
 
Homme Gaetan
Webmaster
Inscription : janvier 2007
Messages : 386
Détails du profil
Informations personnelles :
Nom : Homme Gaetan
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : janvier 2007
Messages : 386
Points : 441
Points : 441
Envoyer un message via MSN à Gaetan_
Les 12 derniers enregistrements.
D'après la doc :
Citation:
$input = array("a", "b", "c", "d", "e");
$output = array_slice($input, 2); // retourne "c", "d", et "e"
Donc array_slice($conso, 11) me parait correct je ne comprends pas.

J'ai loupé quelque chose ?
Gaetan_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 16h23   #7
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
montre ta chaine d'origine
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 16h41   #8
Membre éprouvé
 
Homme Gaetan
Webmaster
Inscription : janvier 2007
Messages : 386
Détails du profil
Informations personnelles :
Nom : Homme Gaetan
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : janvier 2007
Messages : 386
Points : 441
Points : 441
Envoyer un message via MSN à Gaetan_
Merci de ta patience.

Ma chaine d'origine $history renvoi :
Citation:
0,1,1,3,1,3,2,6,2,3,3,2,2,5,5,1,1,2,1,4,0,4,3,1,0,0,0,0,0,0,0,0,0,
Mon but à la base est d'extraire de cette chaine les 12 dernières valeurs différentes de 0

Code php :
1
2
3
4
5
6
7
8
9
<?php
// J'extrait les 0 de ma chaine :
$history =  str_replace(",0,",",",$history);
$conso = explode(',', $history);
 
// PS : Unset ne supprime pas les '0' :
unset($conso[0]);
 
print_r(array_slice($conso, 11));
Gaetan_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/11/2011, 16h44   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 131
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 131
Points : 8 491
Points : 8 491
Code :
1
2
3
$str = '0,1,1,3,1,3,2,6,2,3,3,2,2,5,5,1,1,2,1,4,0,4,3,1,0,0,0,0,0,0,0,0,0,';
$items = array_filter(explode(',', $str));
print_r(array_slice($items, count($items) - 12));
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 16/11/2011, 16h55   #10
Membre éprouvé
 
Homme Gaetan
Webmaster
Inscription : janvier 2007
Messages : 386
Détails du profil
Informations personnelles :
Nom : Homme Gaetan
Âge : 40
Localisation : France

Informations professionnelles :
Activité : Webmaster
Secteur : Biens de consommation

Informations forums :
Inscription : janvier 2007
Messages : 386
Points : 441
Points : 441
Envoyer un message via MSN à Gaetan_
LA star.
Bravo
Merci !
Gaetan_ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/11/2011, 11h39   #11
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 661
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 661
Points : 5 388
Points : 5 388
Sinon, tu pouvais aussi utiliser un offset négatif :
Citation:
Envoyé par php.net
Si offset est négatif, cette série commencera à l'offset offset, mais en commençant à la fin du tableau array.
Code :
array_slice($items,  -12);
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 07h59.


 
 
 
 
Partenaires

Hébergement Web