IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Array : x derniers éléments


Sujet :

Langage PHP

  1. #1
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    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.

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    avec un array_slice

  3. #3
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    Super, merci à toi !

    bonne fin de journée

  4. #4
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    Je ne comprends pas, je fais :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $conso = explode(',', $history);
    unset($conso['0']);
    print_r(array_slice($conso, 11));

    qui me donne :
    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 )

  5. #5
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    le premier paramètre c'est offset, t'attendais quoi ?

  6. #6
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    Les 12 derniers enregistrements.
    D'après la doc :
    $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 ?

  7. #7
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    montre ta chaine d'origine

  8. #8
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    Merci de ta patience.

    Ma chaine d'origine $history renvoi :
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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));

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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));

  10. #10
    Membre chevronné
    Homme Profil pro
    Webmaster
    Inscrit en
    Janvier 2007
    Messages
    489
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 489
    Par défaut
    LA star.
    Bravo
    Merci !

  11. #11
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 41
    Localisation : France

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    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 : Sélectionner tout - Visualiser dans une fenêtre à part
    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)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [array] supprimer un élément qui n'est pas le dernier
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 9
    Dernier message: 16/04/2008, 21h41
  2. Réponses: 10
    Dernier message: 09/06/2006, 18h02
  3. [PL/SQL] Curseur - Récupération du dernier élément
    Par dupont166 dans le forum Oracle
    Réponses: 5
    Dernier message: 27/12/2005, 05h57
  4. for-each et dernier élément
    Par neptune dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 08/09/2005, 15h53
  5. Comment récupérer l'index du dernier élément inséré ?
    Par Didier100 dans le forum Bases de données
    Réponses: 4
    Dernier message: 15/07/2004, 23h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo