Table of Contents

# $EPIC: ifinditem.txt,v 1.2 2007/02/27 04:57:37 jnelson Exp $

Synopsis:

$ifinditem(<array> <string>)

Description:

If you remember with setitem, you provided an array name, an item number, and some stuff. This function returns the index number of an item whose “stuff” is <string>. Because this function does a binary search, if multiple items have the same “stuff”, there's no rule which one will be returned.

To be more precise about it, this function returns a number N such that

igetitem(//array// $ifinditem(//array// //string//) === '//string//'

is true. If multiple items in the array have the same value string, which one is returned is undefined. Check out ifindfirst to get the first one, and ifinditems to get a list of all of them. Check out finditem to get the item number instead of the index number.

Practical:

These functions are useful when you want to see if a particular string is present in an array. Being sensitive to case, they are more precise than the general pattern-matching functions.

Returns:

  -2   item not found in array
  -1   array does not exist
> -1   item/index number that matches input

Examples:

/* contrived sample array */
$setitem(booya 0 blah)
$setitem(booya 1 foobar)
$setitem(booya 2 blah)

$finditem(booya blah)                   returns 0
$ifinditem(booya blah)                  returns 1
$ifindfirst(booya blah)                 returns 0
$finditem(booya Blah)                   returns -1
$finditem(foobar blah)                  returns -2