Bash : function array_search()

Article published the
1 minute(s) to read

This article has 121 words.
RAW source of the article: MD

Description

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

Équivalent à la function [PHP array_search

Source Code

Code: bash

function array_search() {

    # equivalent to PHP array_search
    # call: array_search needle array

    local needle="$1" IFS=" "; shift; read -a array <<< "$@"

    for (( i=0; i < ${#array[*]}; i++ )); do
        if [[ "${array[$i]}" == "${needle}" ]]; then echo "$i"; fi
    done
    return 1

    unset array needle IFS

}

Parameters

  • needle is the searched value
  • haystack is the array where to search

Return Values

  • Returns the key for needle, if is found into the array haystack
  • Otherwise, returns 1: considere this value as FALSE.

Example

declare -a color=("blue", "red", "green", "grey");
echo "$(array_search "red" "${color[@]}")"