summaryrefslogblamecommitdiffstats
path: root/library/Pbs/Search.php
blob: 7f6dfa772e63cccec8a78cec24cfeed715c2d71d (plain) (tree)
1
2
3
4
5
6
7
8
9
10
11


                        







                                                        










                                                                                                       











                                             

                                                    

                                                                              







                                                                                   
                                                                                                                                 








                                                                           
                                                

                                      
                                                

                                      
                                                                            






                                                             
<?php

class Pbs_Search{	

	private $searchTerm = '';
	private $searcha;
	private $searchb;
	
	public function setSearchTerm($search){		
		$this->searchTerm = $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;
			}
		}
		$this->searcha = $searcha;
		$this->searchb = $searchb;
	}
	
	public function getSearchTerms(){
		$beta = $this->searcha;
		foreach($this->searchb as $b)
			$beta[] = $b;
		return $beta;
	}
	public function search($array){
		
		foreach($array as $counter => $cig){
			foreach($cig as $k => $v){
				if(count($this->searcha) > 0){
					foreach($this->searcha as $sk => $sv){
						if($k == $sk){
							if(stristr($v,$sv)){
								$com1[] = $counter;
							}
						}
					}
				}
				if(count($searchb) >= 0){
					foreach($this->searchb as $sk => $sv){							 
						 $comm = stristr($v,$sv);
						 if($comm != false){
						 	$com2[] = $counter;
						 	break;
						 }
					}
				}
			}					
		}
		if (count($this->searcha) == 0){
			$data = $com2;
		}
		if (count($this->searchb) == 0){
			$data = $com1;
		}
		if (count($this->searcha) > 0 && count($this->searchb) > 0){
			$data = array_intersect($com1,$com2);
		}			
		foreach( $data as $c)
			$ges[] = $array[$c];
		return $ges;
	}
}