note 47475 deleted from function.in-array by felipe

[email protected]
Newsgroups php.notes
Message-ID <[email protected]>
Note Submitter: memandeemail at gmail dot com 

----

Some very helpfuly variant's, of functions:

class shared {
	/**lordfarquaad at notredomaine dot net 09-Sep-2004 11:44
	* @return bool
	* @param mixed $needle
	* @param mixed $haystack
	* @desc This function will be faster, as it doesn't compare all elements, it stops when it founds the good one. It also works if $haystack is not an array :-)
	*/

	function in_array_multi($needle, $haystack)
	{
		if(!is_array($haystack)) return $needle == $haystack;
		foreach($haystack as $value) if(shared::in_array_multi($needle, $value)) return true;
		return false;
	}

	/**lordfarquaad function's variant1
	* @return bool
	* @param string $needle_key
	* @param mixed $haystack
	* @desc Search a key in the array and return if founded or not.
	*/

	function in_array_key_multi($needle_key, $haystack)
	{
		if(!is_array($haystack)) return $needle_key == $haystack;
		foreach($haystack as $key => $value)
		{
			$value; // TODO: Extract the $key without seting $value
			if(shared::in_array_key_multi($needle_key, $key)) return true;
		}
		return false;
	}

	/**lordfarquaad function's variant2
	* @return bool
	* @param string $needlekey
	* @param mixed $needlevalue
	* @param mixed[optional] $haystack_array
	* @param string[optional] $haystack_key
	* @param mixed[optional] $haystack_value
	* @desc Search in array for the key and value equal.
	*/
	function in_array_multi_and_key($needlekey, $needlevalue, $haystack_array = null, $haystack_key = null, $haystack_value = null)
	{
		if (!is_array($haystack_array)) return ($needlekey == $haystack_key and $needlevalue == $haystack_value);
		foreach ($haystack_array as $key => $value) if (shared::in_array_multi_and_key($needlekey, $needlevalue, $value, $key, $value)) return true;
		return false;
	}
}

HOW TO USE:

shared::in_array_multi(......)

it's very simple.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.