Question

I have a code that will produce array of strings.... now my problem is i need to substr each result of the array but i think array is not allowed to be used in substr...

please help:

CODE:

<?php
$file = 'upload/filter.txt';
$searchfor = $_POST['search'];
$btn = $_POST['button'];
$sum = 0;

if($btn == 'search') {

//prevents the browser from parsing this as HTML.
header('Content-Type: text/plain');

// get the file contents, assuming the file to be readable (and exist)
$contents = file_get_contents($file);

// escape special characters in the query
$pattern = preg_quote($searchfor, '/');

// finalise the regular expression, matching the whole line
$pattern = "/^.*$pattern.*\$/m";


// search, and store all matching occurences in $matches
if(preg_match_all($pattern, $contents, $matches)){
echo "Found matches:\n";
$result = implode("\n", $matches[0]);
echo $result;


 }
else{
 echo "No matches found";
 }


 }
 ?>

The $matches there is the array... i need to substr each result of the $matches

Was it helpful?

Solution

you can use array_walk:

function fcn(&$item) {
   $item = substr(..do what you want here ...);
}

array_walk($matches, "fcn");

OTHER TIPS

Proper use of array_walk

array_walk( $matches, substr(your area));

Array_map accepts several arrays

array_map(substr(your area),  $matches1, $origarray2);

in your case

 array_map(substr(your area),  $matches);

Read more:

array_map

array_walk

To find a sub string in an array I use this function on a production site, works perfectly.

I convert the array to a collection because it's easier to manage.

public function substrInArray($substr, Array $array) {
    $substr = strtolower($substr);
    $array = collect($array); // convert array to collection

    return $body_types->map(function ($array_item) {
        return strtolower($array_item);
    })->filter(function ($array_item) use ($substr) {
        return substr_count($array_item, $substr);
    })->keys()->first();

}

This will return the key from the first match, it's just an example you can tinker. Returns null if nothing found.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top