array_search no onValidate

Prezados,

Preciso fazer uma pesquisa mais abrangente e utilizar o array_search para localizar, em determinado momento, um registro específico sem precisar voltar à base de dados. Alguém já usou e poderia postar um exemplo?

Utilizo o sc_lookup para a pesquisa abrangente e preciso localizar uma data.

Desde já, grata pela atenção.

sc_lookup(ds,“SELECT …”);
$key = array_search(‘valor’, {ds}); //matriz
ou
$key = array_search(‘valor’, {ds[0]});

Não ta rolando assim…

No exemplo abaixo, $key ta retornando vazio:

{ds[0][0]} = '2016-07-15';
$key = array_search('2016-07-15', {ds});

Tente usar este código

/* Macro sc_lookup */

$sql ="
SELECT
    DataVencimento
FROM
    parcelas
WHERE
    YEAR(DataVencimento)=2016
";

sc_lookup(tb_parc, $sql);

/* Erro no lookup */
if (FALSE === {tb_parc}) {
	sc_error_message("Ocorreu um erro no acesso ao banco de dados.<BR>");
}
elseif (empty({tb_parc})) { /* EOF */

	sc_error_message("Nenhum valor foi retornado pelo banco.<BR>");
}
else {

	/* Inclua aqui sua rotina de processamento */	
	
	$key_encontrada='NAO';
	$key_numero=null;

	for ($j = 0; $j <= count({tb_parc})-1; $j++) {
		 if ({tb_parc[$j][0]}=='2016-01-05') { // Coloque aqui o que vai procurar...
			 $key_encontrada='SIM';
			 $key_numero=$j;
			 break;
		 }
    } // FIM for
	
	if ($key_encontrada=='SIM') {
	    echo 'KEY = '.$key_numero."<BR>";
		echo 'DADOS = '.{tb_parc[$key_numero][0]}."<BR>";
	} else {
		echo 'KEY = NÃO ECONTRADA!'."<BR>";
	}
	
}

Jailton, o FOR eu já tenho. Queria “economizar” linhas.

Obrigada!!

{ds[0][0]} = ‘2016-07-25’;
$k = array_search(“2016-07-25”,{ds[0]});
print $k.’
’;
var_dump({ds[0]});

Vai retornar 0 ( indice do array).