Na semana passada estive, e ainda estou, trabalhando em um parser que le os arquivos de Log do Apache e gera relatórios. Ta ok, eu sei que existe webalizer e um monte de ferramentas que fazem isso, mas os relatórios que eu preciso necessitam de muitas personalizações.
Bem uma das funções implementadas na classe tem o objetivo de fazer uma pesquisa em um array multidimencional. Abaixo segue o código comentado e no final a URL para download do arquivo completo.
/**
* Função que realiza pesquisa em array multidimencional
*
* @param String $strSearch, Array $arrMyArray
* @return array
*/
function multiArraySearch($strSearch, $arrMyArray)
{
$value = false;
$x = 0;
foreach($arrMyArray as $temp)
{
$search = array_search($strSearch, $temp);
if (strlen($search) > 0 && $search >= 0)
{
$value[0] = $x;
$value[1] = $search;
}
$x++;
}
return $value;
}
/**
* Testando a função
* Primeiramente vamos criar um array multidimencional
*/
$arrMulti = array(
‘0′=>array(’nome’=>’Maurivan’,'website’=>’www.maurivan.com’),
‘1′=>array(’nome’=>’Leandro’,'website’=>’www.leandroxavier.com’),
‘2′=>array(’nome’=>’Rodrigo’,'website’=>’www.rodrigoslompo.com’)
);
/**
* Chamada da função
*/
$value = multiArraySearch(’Rodrigo’,$arrMulti);
/**
* Tratando a saida dos dados
* Se valor de retorno da função for igual a false apenas
* será exibe a mensagem de registro não encontrado se não mostra o resultado
*/
if ($value==false) {
echo ‘Registro não encontrado’;
}
else
{
/**
* Na linha abaixo usamos a função print_r apenas para que vocês possam ter uma idéia de como
* é o array retornado pela função.
*/
print_r($value);
/**
* Abaixo uma saida mais inteligivel para o usuário
*/
echo “<p>” . $arrMulti[$value[0]]['nome'] . ” - ” . $arrMulti[$value[0]]['website'] . “</p>”;
}
0 comments ↓
There are no comments yet...Kick things off by filling out the form below.
Leave a Comment