Estou utilizando a API do Google, a Cloud Vision, para analisar uma imagem e me retornar através das Labels, qual Marca/Modelo de um carro, por exemplo.
Utilizando a imagem informada abaixo, tenho os seguintes retornos: [car, land vehicle, vehicle, motor vehicle, bmw, personal luxury car, bmw x6, sport utility vehicle, luxury vehicle, mid size car, automotive design, crossover suv, bmw concept x6 activehybrid, vehicle registration plate, bumper, family car, automotive exterior, executive car, compact car, bmw x3
]
Primeiro utilizo as labels retornadas para buscar qual a Marca, nesse exemplo seria BMW.
$marcaUnica = []; // Array para comparação de labels, evitando nomes duplicados.
foreach ($nomes as $nome) { // Percorrendo todas as labels retornadas.
$partes = explode(" ", $nome); // Separando nomes composto. EX: bmw x6
foreach ($partes as $parte){ // Percorrendo as labels separadas.
if(in_array($parte, $marcaUnica)){ // Verificando se a label existe no Array.
/* Caso exista não faz nada */
}else{
$marcaUnica[] = $parte; // Se não existir adiciona
$retornoMarca[] = $this->m_consulta->marca($parte); //Faz uma busca no banco de dados com todas as labels, retornando apenas a label que existir no banco cadastrada como uma marca de carro. Nesse exemplo a unica marca e BMW.
}
}
}
Depois faço a mesma consulta, só que agora buscando pelos modelos, nesse exemplo, teria os modelos X3 e X6.
Ficando assim com dois arrays.
array(1) { [0]=> string(3) "BMW" }
array(2) { [0]=> string(2) "X3" [1]=> string(2) "X6" }
Minha primeira duvida é, como pegar esses arrays e passar como parâmetro para o Model, retornando o resultado da pesquisa na view?
Segunda duvida, como tratar os casos de em que um dos arrays ou ambos fique nulo(caso o retorno da API não traga nome de marca ou modelo).
Espero que a minha duvida tenha ficado clara, qualquer duvida no código só me perguntar, desde já agradeço a atenção de todos.