2016-05-06 9 views
2

Ich möchte Artikel zurückgeben, die "wie" etwas anderes sind. Ich habe array_filter versucht, aber ich kann es nicht richtig verwenden.Wie kann ich ein Array filtern und Treffer zurückgeben

Hier ist was ich versucht habe. gewünschter Ausgang ist

one.php2000565, one.php999.php. Array ([0] => eins.php2000565 [1] => two.php [2] => drei.php [3] => one.php999.php [4] => vier.php)

$search_text = 'one.php'; 
array_filter($array, function($a) use ($search_text) { 
    return (strpos($a, $search_text) !== false); 
}); 

Array([0] => one.php2000565[1] => two.php[2] => three.php[3] => one.php999.php[4] => four.php) 

$search_text = 'one.php'; 
array_filter($array, function($a) use ($search_text) { 
    return (strpos($a, $search_text) !== false); 
}); 
+0

Sie müssen alle Elemente, die one.php enthält? –

+1

Ihr Code funktioniert perfekt nur den 'array_filter' Wert innerhalb einer Variablen wie' $ res = array_filter ..... 'und einfach' print_r ($ res); ' –

+0

ja das ist was ich will – ernys

Antwort

1
$res = array_filter($files, function($files) use ($search_program) { 
    return (strpos($files, $search_program) !== false); 
}); 
print_r($res); 
1

können Sie array_filter versuchen:

$search_text = 'one.php'; 

array_filter($yourArray, function($el) use ($search_text) { 
     return (strpos($el, $search_text) !== false); 
}); 
0

Sie können die folgende Lösung versuchen: -

$example = array([0] => one.php2000565[1] => two.php[2] => three.php[3] => one.php999.php[4] => four.php); 
$searchword = 'one.php'; 
$matches = array_filter($example, function($var) use ($searchword) { return preg_match("/\b$searchword\b/i", $var); }); 

Es kann Ihnen helfen.

+0

Es wird das Element auflisten, das die one.php enthält –

+0

OPs Code funktioniert gut Problem ist OP bekommt nicht den Wert innerhalb einer Variablen [check this] (https://3v4l.org/Hcmg0) –

+0

Ja Ich lese die Kommentare, keine Sorge. –

0

Sie weisen kein Ergebnis von array_filter zu. PHP array_filter gibt das modifizierte Array zurück. So verwenden Sie einfach:

$array = array_filter($array, 
    function($a) use ($search_text) { 
     return ( 
      strpos($a, $search_text) !== false 
     ); 
    } 
) 
0

Wie habe ich bemerkte, dass OPs Code funktioniert gut mit array_filter nur den gefilterten Wert in einer Variablen zugewiesen werden müssen. Aber meine Lösung ist Alternative zu array_filter stattdessen können Sie preg_grep verwenden wie als

$res = preg_grep("/$search_text/",$array); 
print_r($res); 
Verwandte Themen