supprimer un élément d'un array

Nouveau WRInaute
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
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:
  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
 
WRInaute discret
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.
 
Nouveau WRInaute
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 ?
 
Nouveau WRInaute
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.
 
Nouveau WRInaute
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 ?
 
Discussions similaires
Haut