Bash : function array_search()

Article publié, le
1 minute(s) de lecture

Cet article contient 123 mots.
Source brute de l'article : MD

Description

array_search() : recherche dans un tableau la clé associée à une valeur

Équivalent à la function [PHP array_search

Code source

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

}

Paramètres

  • needle est la valeur à rechercher
  • haystack est le tableau dans lequel chercher

Valeurs de retour

  • Retourne la clé pour needle, si elle est trouvée dans le tableau haystack
  • Autrement retourne 1 : considérez cette valeur comme FALSE

Exemple

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