array_search

Eléphanteau du PHP | 14 Messages

26 déc. 2014, 12:58

Bonjour à tous,

Çà fait plusieurs heures que je tourne en rond et je n'arrive toujours à faire fonctionner ce script :-(

Voila , je veux simplement rechercher une donnée dans un tableau et supprimer la ligne. Je crée mon tableau depuis un fichier et puis je supprime les espaces en début de chaine.
le code est commenter ;-)
    $section = file('slide-carton.html'); //fichier dans un tableau
    $section_sans_espace = array(); //deuxime tableau pour ltrim
    var_dump($section);

    foreach($section as $value){

    $section_sans_espace[] = ltrim($value); // on retire les espaces vide en début de chaine
    }


    echo '</br></br></br></br>';
    var_dump($section_sans_espace);



    $key1 = array_search('6', $section_sans_espace,true); // je recherche la valeur 6
    unset($section_sans_espace[$key1]); // je supprime via l'index
    var_dump($section_sans_espace);


    file_put_contents('slide-carton.html', $section_sans_espace) // réécrit le fichier

Mon soucis est que pour chaque essai il me supprime la première ligne de mon fichier et rien d'autres !

Merci pour votre aide

Mammouth du PHP | 688 Messages

26 déc. 2014, 13:24

que vaux $key1 avant la ligne unset ?

Eléphanteau du PHP | 14 Messages

26 déc. 2014, 13:37

J'ai essayé

echo array_search('6', $section_sans_espace,true);

Mais ca n'affiche rien :(

Mammouth du PHP | 2278 Messages

26 déc. 2014, 17:31

J'ai testé:
<?PHP
 //$section = file('slide-carton.html'); //fichier dans un tableau
$section = array ('les jeunes', ' gaga  ', '   6');
    $section_sans_espace = array(); //deuxième tableau pour ltrim
   // var_dump($section); ok

    foreach($section as $value){

    $section_sans_espace[] = ltrim($value); // on retire les espaces vides en début de chaine
    }


    echo '</br></br></br></br>';
   // var_dump($section_sans_espace);ok



    $key1 = array_search('6', $section_sans_espace,true); // je recherche la valeur 6
var_dump($key1);
    unset($section_sans_espace[$key1]); // je supprime via l'index
    var_dump($section_sans_espace);

?>
Ca fait ce que tu veux mais si tu as ces valeurs :
$section = array ('les jeunes', ' gaga ', ' 6 '); //avec des espaces après ou du texte...
array_search rend false et le unset ne fait rien.
Vanitas vanitatum et omnia vanitas
Mes derniers livres :
Sauvez les Mots chez BoD,
Tous les chemins mènent à ROM chez BoD