2017-05-10 10 views
1

Ich brauche ein wenig Hilfe von euch Jungs, um diesen kleinen Code zu beheben. Die Idee ist, alle Zahlen zu entfernen, die innerhalb $remove_str von $list_str sind. Wie Sie sehen können, habe ich bereits versucht, das Problem zu lösen, indem ich beide Strings in Arrays umwandle und einfach durch das Listen-Array nach Werten innerhalb des Remove-Arrays durchsuche und es entferne, wenn es eine Übereinstimmung gibt. Die Ergebnisse sind jedoch alles andere als das, was ich erwartet habe. Ich habe schon eine Weile damit herumgespielt, aber mein Kopf dreht sich zu sehr, um die Lösung zu sehen.Entferne Werte aus dem Array basierend auf einem anderen Array

<?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; 

?> 

Ergebnis:

1,6,9,150,195,213

Erwartetes Ergebnis:

1,3,9,34,150,213

Antwort

3

Sie c eine Verwendung array_diff,

array_diff($list_arr, $remove_arr); 
+0

Die Idee scheint einfach genug. Ich versuche es jetzt in meinem Code auszuarbeiten. Lass es dich wissen :) – icecub

+1

Wow, das funktioniert tatsächlich wie ein Charme! Danke vielmals! Wird als beantwortet markiert, sobald SO mich loslässt, haha – icecub

Verwandte Themen