Vous n'êtes pas identifié(e).

  • Contributions :
  • Vos boîtes de messages privés sont vides.

Annonce

Participez au Concours Seo 2016 Officiel ! | Faites un bond en avant avec la formation SEO Ranking Skills le 12 Avril 2017

#1 2016-04-22 08:50:04

Mention Walid
Soldier
Inscription : 2013-02-07
Messages : 1 927

Sémantique
Audit et Analyse
Netlinking
PHP

Array multidimensionnel pour catégories sous-catégories

Hello,

Après avoir galéré comme pas possible, je vous partage une solution que j'ai trouvé sur le web pour afficher sous forme d'arbre les catégories et sous catégories. J'ai encore beaucoup à apprendre, notamment au niveau des fonctions sur les Arrays.

Juste une requête sql du genre "SELECT id,parent,name FROM table_category;" sans ce soucier de la relation parents enfants. j'ai trouvé ça pas mal par ce que tous les autres bouts de codes que j'ai trouvé obligeais à faire plusieurs requêtes pour avoir l’arborescence.

Voilà le code est le lien au cas où cela peut vous servir : http://codepad.org/8p9DyHUZ



<?php

$categories = array(
    array('id' => 1,  'parent' => 0, 'name' => 'Category A'),
    array('id' => 2,  'parent' => 0, 'name' => 'Category B'),
    array('id' => 3,  'parent' => 0, 'name' => 'Category C'),
    array('id' => 4,  'parent' => 0, 'name' => 'Category D'),
    array('id' => 5,  'parent' => 0, 'name' => 'Category E'),
    array('id' => 6,  'parent' => 2, 'name' => 'Subcategory F'),
    array('id' => 7,  'parent' => 2, 'name' => 'Subcategory G'),
    array('id' => 8,  'parent' => 3, 'name' => 'Subcategory H'),
    array('id' => 9,  'parent' => 4, 'name' => 'Subcategory I'),
    array('id' => 10, 'parent' => 9, 'name' => 'Subcategory J'),
);

function categoriesToTree(&$categories) {

    $map = array(
        0 => array('subcategories' => array())
    );

    foreach ($categories as &$category) {
        $category['subcategories'] = array();
        $map[$category['id']] = &$category;
    }

    foreach ($categories as &$category) {
        $map[$category['parent']]['subcategories'][] = &$category;
    }

    return $map[0]['subcategories'];

}

echo "=== BEFORE ===\n";
print_r ($categories);

$tree = categoriesToTree($categories);

echo "=== AFTER ===\n";
print_r ($categories);

echo "=== TREE ===\n";
print_r ($tree);
 


Fatigué du SEO sans résultats ? Je te propose :

1 => Un vrai Road Map SEO - 2 => Une Optimisation aux petits oignons - 3 => Des Prestations de Trust Linking
Mon Id Skype : walid.gabteni - Mon site : Light On SEO

En ligne

Pied de page des forums