Id d'une catégorie par rapport au nom

Bonjour,

Je cherche une solution pour retrouver l'ID d'une catégorie par rapport à son nom. Je précise que j'en ai besoin depuis un plugin donc, il me semble, je ne peux pas utiliser catID() puisque cette fonction se base sur la catégorie en cours.

Est-ce faisable ?
Merci d'avance.

J'ai un string de l'array

Réponses

  • flipflipflipflip Member
    août 2020 modifié

    Un début d'idée :

    array_search('Ma recherche', array_column($plxMotor->aCats, 'name'), true);
    

    La valeur est bien trouvé mais array_column reindex le tableau, du coups c'est pas l'index de aCats (qui est l'id de la catégorie) qui est renvoyé.

    J'ai un string de l'array

  • J'ai pas réussi à utiliser une fonction standard de php du coups un foreach fera l'affaire

            foreach ($plxMotor->aCats as $key => $value) {
                if($value['name'] === 'Ma recherche') {
                    $catId = $key;
                }
            }
    

    J'ai un string de l'array

  • bazooka07bazooka07 PluXml Lead Developer, Moderator

    @flipflip,
    Il vaut mieux utiliser array_map au lieu de array_column :

    <?php
    const PLX_ROOT = './';
    include PLX_ROOT . 'core/lib/config.php'; # Autochargement des classes      
    
    printf('PluXml version %s', PLX_VERSION);
    
    $plxMotor = plxMotor::getInstance();
    print_r($plxMotor->aCats);
    
    $t = array_map(function($value) { return $value['name']; }, $plxMotor->aCats);
    print_r($t);
    
    # la valeur recherchée :
    $value = 'Oiseaux';
    
    $result = array_search($value, $t);
    
    if($result === false) {
        echo 'Échec';
    } else {
        printf('index pour %s : %s' . PHP_EOL, $value, $result);
    }
    ?>
    

    Testé avec la branche master du dépôt Github (auto-chargement des class de PluXml)

Connectez-vous ou Inscrivez-vous pour répondre.