在PHP中使用in_array从数组中搜索时查找索引

My aim is to find out what the operator is, and where it was in the original $operatorArray (which contains the various operators such as "+", "-" etc... )

So I have managed to check when $operator matches with another operator in my existing $operatorArray, however I need to know where in $operatorArray it is found.

foreach ($_SESSION['explodedQ'] as $operator){ //search through the user input for the operator. 

        if (in_array("$operator", $operatorArray)) { //if the operator that we found is in the array, then tell us what it is

            print_r("$operator"); //prints the operator found
            print_r("$positionNumber"); //prints where the operator is

        } //if operator 
        else{

            $positionNumber++; //The variable which keeps count on where the array is searching. 
        }

I've tried Google/Stack searching, but the thing is, I don't actually know what to Google search. I've searched for things like "find index from in_array" etc... and I can't see how to do it. If you could provide me with a simple way to understand how to achieve this, I would be greatful. Thanks for your time.

Taken straight from the PHP manual:

array_search() - Searches the array for a given value and returns the corresponding key if successful

If you're searching a non-associative array, it returns the corresponding key, which is the index you're looking for. For non-consecutively indexed arrays (i.e. array(1 => 'Foo', 3 => 'Bar', ...)) you can use the result of array_values() and search in it.

array_search will do what you are looking for

You might want to give this a try

foreach($_SESSION['explodedQ'] as $index => $operator) { /* your stuff */ }

That way you can print the $index as soon as your in_array() hits the right $operator.

i think you need array_search()

$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');

$key = array_search('green', $array); // $key = 2;
$key = array_search('red', $array);   // $key = 1;

Use:

$key = array_search($operator, $array);