supprimer un élément d'un array
7 messages
• Page 1 sur 1
- gyakutsuki
- Nouveau WRInaute

- Messages: 22
- Inscription: 1 Oct 2009
supprimer un élément d'un array
bonjour,
Je souhaite supprimer un élément d'un array suite à un scan du répertoire
au lieu d'avoir un résultat
En fait je scanne un répertoire et je récupère tous mes css.
premier résultant obtenu
je souhaiterais avoir simplement
Résultat à atteindre
Voici le code que j'ai utilisé pouvant me permettre d'avoir le premier résultat.
Je bute sur le deuxième code me permettant d'enlever tous les éléments que je ne souhaite pas pour avoir un tableau propre.
j'ai essayé unset mais cela ne fonctionne pas à priori.
Pourriez vous me donner des éléments.
merci
Je souhaite supprimer un élément d'un array suite à un scan du répertoire
au lieu d'avoir un résultat
En fait je scanne un répertoire et je récupère tous mes css.
premier résultant obtenu
Array ( [1] => /home/www/........../960gs/890_24_col.css
[2] => /home/www/........../message_general.css
[3] => /home/www/........../modules_boxes/bm_products_heart.css
je souhaiterais avoir simplement
Résultat à atteindre
Array ( [1] =>960gs/890_24_col.css
[2] =>message_general.css
[3] => modules_boxes/bm_products_heart.css
Voici le code que j'ai utilisé pouvant me permettre d'avoir le premier résultat.
- Code: Tout sélectionner
function get_files($root_dir, $all_data=array())
{
// only include files with these extensions
$allow_extensions = array("css");
// make any specific files you wish to be excluded
$ignore_files = array();
$ignore_regex = '/^_/';
// skip these directories
$ignore_dirs = array(".", "..");
// run through content of root directory
$dir_content = scandir($root_dir);
foreach($dir_content as $key => $content)
{
$path = $root_dir.'/'.$content;
if(is_file($path) && is_readable($path))
{
// skip ignored files
if(!in_array($content, $ignore_files))
{
if (preg_match($ignore_regex,$content) == 0)
{
$content_chunks = explode(".",$content);
$ext = $content_chunks[count($content_chunks) - 1];
// only include files with desired extensions
if (in_array($ext, $allow_extensions))
{
// save file name with path
$all_data[] = $path;
}
}
}
}
// if content is a directory and readable, add path and name
elseif(is_dir($path) && is_readable($path))
{
// skip any ignored dirs
if(!in_array($content, $ignore_dirs))
{
// recursive callback to open new directory
$all_data = get_files($path, $all_data);
}
}
} // end foreach
return $all_data;
} // end get_files()
$root_dir = DIR_CATALOG . DIR_TEMPLATE . DIR_WS_TEMPLATE_GRAPHISM . 'french/css';
$files_css = get_files( $root_dir) ;
print_r($files_css);
Je bute sur le deuxième code me permettant d'enlever tous les éléments que je ne souhaite pas pour avoir un tableau propre.
j'ai essayé unset mais cela ne fonctionne pas à priori.
Pourriez vous me donner des éléments.
merci
- marchandeo
- WRInaute discret

- Messages: 110
- Inscription: 18 Jan 2011
Re: supprimer un élément d'un array
Bonsoir,
Je n'ai pas parcouru en détail ta fonction, qui m'a l'air un peu complexe
, mais par rapport à tes 2 exemples ce que tu souhaites peut se faire très facilement par à un appel à la fonction PHP array_map sur la fonction str_replace.
Je n'ai pas parcouru en détail ta fonction, qui m'a l'air un peu complexe
- gyakutsuki
- Nouveau WRInaute

- Messages: 22
- Inscription: 1 Oct 2009
Re: supprimer un élément d'un array
Merci, le str_replace est une piste.
J'obtiens ceci :
Array
(
[0] => 960gs/1008_24_col.css
[1] => modules_boxes/bm_advertisement.css
[2] => modules_boxes/bm_advertisement_1.css
[3] => modules_boxes/bm_best_sellers.css
[4] => modules_boxes/bm_categories.css
}
maintenant je dois supprimer [0] => pour obtenir ceci "960gs/1008_24_col.css",
est ce que explode serait la bonne option ?
J'obtiens ceci :
Array
(
[0] => 960gs/1008_24_col.css
[1] => modules_boxes/bm_advertisement.css
[2] => modules_boxes/bm_advertisement_1.css
[3] => modules_boxes/bm_best_sellers.css
[4] => modules_boxes/bm_categories.css
}
maintenant je dois supprimer [0] => pour obtenir ceci "960gs/1008_24_col.css",
est ce que explode serait la bonne option ?
- gyakutsuki
- Nouveau WRInaute

- Messages: 22
- Inscription: 1 Oct 2009
Re: supprimer un élément d'un array
enfin je veux dire exactement :
Array
{
"960gs/1008_24_col.css",
"modules_boxes/bm_advertisement.css",
"modules_boxes/bm_best_sellers.css",
"modules_boxes/bm_categories.css"
}
est la finalité de ce que je souhaite avoir.
Array
{
"960gs/1008_24_col.css",
"modules_boxes/bm_advertisement.css",
"modules_boxes/bm_best_sellers.css",
"modules_boxes/bm_categories.css"
}
est la finalité de ce que je souhaite avoir.
- gyakutsuki
- Nouveau WRInaute

- Messages: 22
- Inscription: 1 Oct 2009
Re: supprimer un élément d'un array
Tu ferais commerce
$root_dir = /home...... 'french/css';
$files_array = get_files($root_dir);
$files_css_replace = str_replace ( $root_dir .'/', '', $files_array);
$cssFiles = $files_css_replace;
résultat :
Array
(
[0] => 960gs/1008_24_col.css
[1] => modules_boxes/bm_advertisement.css
[2] => modules_boxes/bm_advertisement_1.css
[3] => modules_boxes/bm_best_sellers.css
[4] => modules_boxes/bm_categories.css
}
Comment ferais tu alors pour supprimer la clef ?
$root_dir = /home...... 'french/css';
$files_array = get_files($root_dir);
$files_css_replace = str_replace ( $root_dir .'/', '', $files_array);
$cssFiles = $files_css_replace;
résultat :
Array
(
[0] => 960gs/1008_24_col.css
[1] => modules_boxes/bm_advertisement.css
[2] => modules_boxes/bm_advertisement_1.css
[3] => modules_boxes/bm_best_sellers.css
[4] => modules_boxes/bm_categories.css
}
Comment ferais tu alors pour supprimer la clef ?
-

spout - WRInaute accro

- Messages: 4382
- Inscription: 14 Mai 2003
Re: supprimer un élément d'un array
Si tu mets pas de clef, PHP en met par défaut. Il faut aller réviser la doc.
De plus à la place de définir le chemin à la mano ($root_dir = '/home......';), il y a des fonctions pour ça:
http://php.net/manual/fr/language.constants.predefined.php
http://php.net/manual/fr/function.realpath.php
http://php.net/manual/fr/function.dirname.php
http://php.net/manual/fr/function.basename.php
De plus à la place de définir le chemin à la mano ($root_dir = '/home......';), il y a des fonctions pour ça:
http://php.net/manual/fr/language.constants.predefined.php
http://php.net/manual/fr/function.realpath.php
http://php.net/manual/fr/function.dirname.php
http://php.net/manual/fr/function.basename.php
7 messages
• Page 1 sur 1
Lectures recommandées sur ce thème :
- Tableau en PHP: Supprimer un ou plusieurs élément(s)
- [Résolu] Supprimer les doublons dans un array ?
- élément bloquant?
- Array et récursivité
- élément non visible avec IE
- Javascript : Cacher un élément
- Tableau array
- [php] Conversion xls en array()
- Boucle javascript sur un element LI
- [SQL] Element pas dans le IN
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

