PHP Arrays Finding the Position of a Value in an Array - Supercoders | Web Development and Design | Tutorial for Java, PHP, HTML, Javascript PHP Arrays Finding the Position of a Value in an Array - Supercoders | Web Development and Design | Tutorial for Java, PHP, HTML, Javascript

Breaking

Post Top Ad

Post Top Ad

Sunday, May 19, 2019

PHP Arrays Finding the Position of a Value in an Array

PHP Arrays




Finding the Position of a Value in an Array

Problem

You want to know if a value is in an array. If the value is in the array, you want to know its key.

Solution

Use array_search(). It returns the key of the found value. If the value is not in the array, it returns false:

            $position = array_search($value, $array);
            if ($position !== false) {
                      // the element in position $position has $value as its value in array $array
            }

Discussion

Use in_array() to find if an array contains a value; use array_search() to discover where that value is located. However, because array_search() gracefully handles searches in which the value isn’t found, it’s better to use array_search() instead of in_array(). The speed difference is minute, and the extra information is potentially useful:

            $favorite_foods = array(1 => 'artichokes', 'bread', 'cauliflower','deviled eggs');
            $food = 'cauliflower';
            $position = array_search($food, $favorite_foods);

            if ($position !== false) {
                      echo "My #$position favorite food is $food";
            } else {
                      echo "Blech! I hate $food!";
            }

Use the !== check against false because if your string is found in the array at position 0, the if evaluates to a logical false, which isn’t what is meant or wanted.

If a value is in the array multiple times, array_search() is only guaranteed to return one of the instances, not the first instance.


No comments:

Post a Comment

Post Top Ad