How to search in multi dimensional array

Sagar Singh

i have multi dimension arrays in which i want to look for some particular words this is how my array looks like

Array
(
    [0] => Array
        (
            [sch_name] => Montfort School Roorkee
            [sch_degree] => High School
            [sch_field] => Commerce
            [sch_grade] => A+
            [sch_from_year] => 2007
            [sch_to_year] => 2015
            [sch_desc] => Montfort School was very nice
        )

    [1] => Array
        (
            [sch_name] => City Public
            [sch_degree] => 12
            [sch_field] => Commerce
            [sch_grade] => 12
            [sch_from_year] => 2007
            [sch_to_year] => 2015
            [sch_desc] => Great School
        )

)

Now suppose i want to find 'montfort' word in this multi dimensional array

So i tried using this function

function searchForWord($id, $array) {
   foreach ($array as $key => $val) {
       if ($val['sch_name'] === $id) {
           return $key;
       }
   }
   return null;
}
echo $id = searchForWord('montfort', $p);

it resulted in nothing but when i wrote 'Montfort School Roorkee' result was found, why these word are so sensitive is there any other way to get values

can't i use something like we do in mysql query Like %keyword

David D

Try this:

$cols = array_column($your_array,'sch_name');
$keys = [];
foreach ($cols as $k=>$v) {
    if (strpos(strtolower($cols[$k]),strtolower('Mont'))!==false) {
        $keys[]=$k;               
    }
}
print_r($keys);

replace $your_array with your array.

it's case insensitive and will match anything partial. You could make it a function like so:

function SearchArrayForKeys($array,$column_name,$search) {
    if (!$array||!is_array($array)) {
        return [];
    }
    $cols = array_column($array,$column_name);
    if (!$cols){
        return [];
    }
    $keys = [];
    foreach ($cols as $k=>$v) {
        if (strpos(strtolower($cols[$k]),strtolower($search))!==false) {
            $keys[]=$k;               
        }
    }        
    return $keys;
}

usage:

$keys = SearchArrayForKeys($your_array,'sch_name','Mont');

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

How to search an multi-dimensional array with multiple search conditions?

PHP Search Multi Dimensional Array

How to search a multi-dimensional array by multiple values at once in PHP?

How to search for a needle in multi-dimensional array in php?

PHP Multi Dimensional Array Search returning Keys

Search key by value in multi dimensional array

How to declare a multi-multi- dimensional array

how to multiply array in multi dimensional array in php

How to return array as multi dimensional array?

AJAX: How to get array on multi dimensional array

How to process the multi dimensional array into specific array?

How to convert a deep multi dimensional array to a single dimensional array - Javascript

How to convert multi dimensional array to single dimensional array in php ?

array_search not working in multi dimensional array as expected

How to parse a multi dimensional array to PHP

How to make a multi dimensional array in a foreach loop

How to concatenate 2 strings in a multi dimensional array?

How to conditionally merge a multi-dimensional array

How to convert multi dimensional json to php array?

How to print specific multi dimensional array java

How to use collect with multi-dimensional array

How to Sort a Multi-dimensional Array by Value

How to Sort Multi-dimensional Array by Value?

How to instantiate multi dimensional array in JavaScript?

How to push data in multi dimensional array format

How to unmarshal multi dimensional array inside struct

How to pass a multi-dimensional array to a function?

How to JSON encode multi-dimensional array?

php - how to sum multi-dimensional array