2017-05-10 4 views
1

Je vais avoir besoin d'un peu d'aide de votre part pour corriger ce petit code. L'idée est d'enlever tous les nombres qui sont à l'intérieur $remove_str de $list_str. Comme vous pouvez le voir, j'ai déjà essayé de résoudre le problème en transformant les deux chaînes en tableaux et en faisant simplement une boucle dans le tableau de liste pour rechercher des valeurs dans le tableau remove et le supprimer s'il y a une correspondance. Cependant, les résultats sont tout sauf ce à quoi je m'attendais. Je joue avec ça depuis un moment maintenant, mais ma tête tourne pour voir la solution.Supprimer les valeurs d'un tableau basé sur un autre tableau

<?php 

$remove_str = '5,6,8,56,195'; 
$list_str = '1,3,6,9,34,150,195,213'; 

$remove_arr = explode(',', $remove_str); 
$list_arr = explode(',', $list_str); 

foreach($list_arr as $value){ 
    $position = array_search($value, $remove_arr); 

    if($position !== false){ 
     unset($list_arr[$position]); 
    } else { 
     continue; 
    } 
} 

$result = implode(',', $list_arr); 

echo $result; 

?> 

Résultat:

1,6,9,150,195,213

Résultat attendu:

1,3,9,34,150,213

Répondre

3

Vous c une utilisation array_diff,

array_diff($list_arr, $remove_arr); 
+0

L'idée semble assez simple. Essayer de travailler dans mon code maintenant. Je vous le ferai savoir :) – icecub

+1

Wow, ça fonctionne comme un charme! Merci beaucoup! Marquera comme répondu dès que SO me permet, haha – icecub