Criar um sistema de busca em string!
/*Pessoal eu tenho esse array multidimensional que quero seleciona o nome do produto buscando pela minha url que eu obtenho pelo $_SERVER ['REQUEST_URI'];
só que quero buscar o produto idêntico e correto sem erros veja o código atual!*/
function porcentagem_nx ( $parcial, $total ) { //Função para porcentagem
return ($parcial * 100) / $total;
}
$url_actual = 'dvr stand alone 8 canais penttaxy'; //Produto buscado que irar montar uma página
$produtoUrl = explode(" ", $url_actual);
$query = array ( array('id' => '1', 'nome' => 'Camera Penttaxy Infrafermelho 20 metros 1/3 BS'),
array('id' => '2', 'nome' => 'Camera Penttaxy Infrafermelho 50 metros 1/3 BS'),
array ('id' => '3','nome' => 'Camera Penttaxy dome Infrafermelho 20 metros 1/3 BS'),
array ('id' => '4','nome' => 'Dvr Penttaxy Stand Alone 8 Canais 240fps h264 BS'),
array ('id' => '12','nome' => 'DVR Stand Alone 4 canais Intelbras BS')
);
foreach ($query as $position => $linha){
$frase = strtolower($linha['nome']); //Faz a frase fica toda minuscula para fazer as comparações certinha
$teu = 0;
foreach ($produtoUrl as $key => $value ) {
$eu = substr_count($frase, $value); //Conta o número de ocorrências de cada palavras com o array criado em $produtoUrl
$teu = $teu + $eu; //Faz a soma de todas palavras encontradas
$palav = explode(" ", $frase); //Cria um array na posição do array multidimencional de cada produto para saber quantas palavras tem para fazer uma estimativa
$qtdFrase = count($palav); // Conta quantas palavras tem em cada produto na posição do array multidimencional
$porcent = porcentagem_nx ($teu, $qtdFrase); //Cria uma porcentagem das palavras encontra no array multidimencional em cada posição comparadas com as palavras geradas de $url_actual
if ($porcent > 50 ) { //Se a taxa de ocorrências das palavras de $url_actual for maior que 50% significa que é bem provavel que é o produto procurado em $query em sua posição
echo '<br><br>';
echo $value.'<br>';
echo $position.' '.$frase.'<br>';
echo 'Encontrado'.$eu.'Na posição'.$key.'<br>';
echo 'SOMA '.$teu.'<br>';
echo 'QTD NA FRASE '.count($palav).'<br>';
echo 'TESTE '.$porcent;
}
}
}
//O resultado ira imprimir isso! A pergunta é como faço para fazer mais um filtro e trazer apenas o nome correto que no caso é 'dvr stand alone 8 canais penttaxy'
//tem umas frases a mais que 240fps h264 bs mais isso não importa as 6 primeiras palavras já identifica o produto para o que eu preciso
/*canais
3 dvr penttaxy stand alone 8 canais 240fps h264 bs
Encontrado1Na posição4
SOMA 5
QTD NA FRASE 9
TESTE 55.555555555556
penttaxy
3 dvr penttaxy stand alone 8 canais 240fps h264 bs
Encontrado1Na posição5
SOMA 6
QTD NA FRASE 9
TESTE 66.666666666667
canais
4 dvr stand alone 4 canais intelbras bs
Encontrado1Na posição4
SOMA 4
QTD NA FRASE 7
TESTE 57.142857142857
penttaxy
4 dvr stand alone 4 canais intelbras bs
Encontrado0Na posição5
SOMA 4
QTD NA FRASE 7
TESTE 57.142857142857 */
/*Resumindo tudo eu quero busca no array multidimensional esse produto 'dvr penttaxy stand alone 8 canais 240fps h264 bs'
* mais nas palavras de procura eu só posso usar 'dvr stand alone 8 canais penttaxy', Por exemplo se no futuro esse array venha a conter
'dvr penttaxy stand alone 4 canais 240fps h264 bs' esse produto não é para aparecer na busca é para aparecer o que eu estou procurando!/
Discussão (4)
Carregando comentários...