<?php defined('SYSPATH') or die('No direct access allowed.');

/**
 * This is class is for manupulating objects in general
 *
 * @package    lnApp
 * @category   Helpers
 * @author     Deon George
 * @copyright  (c) 2009-2013 Open Source Billing
 * @license    http://dev.osbill.net/license.html
 */
class Object {
	/**
	 * Provide an in_array capability for an array of Objects
	 *
	 * @param string Object Key that we are evaluating
	 * @param string Value for that Key
	 * @param array The array of objects
	 * @param boolean Traverse children
	 * @return boolean
	 */
	public static function in_array($key,$value,array $objects,$traverse=FALSE) {
		if (! count($objects))
			return FALSE;

		foreach ($objects as $object) {
			if (is_array($object)) {
				if (! $traverse)
					continue;

				if (self::in_array($key,$value,$object,$traverse))
					return TRUE;
			}

			if (isset($object->$key) AND $object->$key == $value)
				return TRUE;
		}

		return FALSE;
	}
}
?>
