summaryrefslogblamecommitdiffstats
path: root/library/Pbs/Search.php
blob: 279cba6aec358d19b08e777ae2f61af61edb0b22 (plain) (tree)


















































                                                                                                                                 
<?php

class Pbs_Search{	
	public function search($array, $search){
		$parts = explode(" ",$search);
		foreach($parts as $search){				
			if(stristr($search,":") && ctype_alpha(substr($search,0,strpos($search,":")))){
				$key = substr($search,0,strpos($search,":"));
				$value = substr($search,strpos($search,":")+1);	
				$searcha[$key] = $value;
			}
			else{
				$searchb[] = $search;
			}
		}
		foreach($array as $counter => $cig){
			foreach($cig as $k => $v){
				if(count($searcha) > 0){
					foreach($searcha as $sk => $sv){
						if($k == $sk){
							if(stristr($v,$sv)){
								$com1[] = $counter;
							}
						}
					}
				}
				if(count($searchb) >= 0){
					foreach($searchb as $sk => $sv){							 
						 $comm = stristr($v,$sv);
						 if($comm != false){
						 	$com2[] = $counter;
						 	break;
						 }
					}
				}
			}					
		}
		if (count($searcha) == 0){
			$data = $com2;
		}
		if (count($searchb) == 0){
			$data = $com1;
		}
		if (count($searcha) > 0 && count($searchb) > 0){
			$data = array_intersect($com1,$com2);
		}			
		foreach( $data as $c)
			$ges[] = $array[$c];
		return $ges;
	}
}