Vamos supor, o valor de retorno de uma função de pesquisa é algo como isto
// If only one record is found
$value = [
"records" => [
"record" => ["some", "Important", "Information"]
]
]
// If multiple records are found
$value = [
"records" => [
"record" => [
0 => ["some", "important", "information"],
1 => ["some", "information", "I dont care"]
]
]
]
qual seria a melhor maneira de obter as informações importantes (no caso de vários registros, é sempre o primeiro)?
Devo verificar algo como
if (array_values($value["record"]["records"])[0] == 0){//do something};
Mas acho que há uma solução muito mais elegante.
Editar: E, aliás, essa não é uma duplicata da pergunta referida, que abrange apenas os vários registros.
Respostas:
0 para resposta № 1Se você deseja o primeiro elemento de uma matriz, deve usar reset
. Esta função define o ponteiro para o primeiro elemento e o retorna.
$firstValue = reset($value["record"]["records"]);
Editar .. depois de ler sua pergunta novamente, ao que parece, você não deseja o primeiro elemento. Você prefere isso
if (isset($value["record"]["records"][0]) && is_array($value["record"]["records"][0])) {
// multiple return values
} else {
// single return value
}
Fazer isso é um tipo de erro de erro e eu não sugeriria que uma função retorne tipos diferentes de estruturas de matriz.
0 para resposta № 2
verifique assim ..
if(is_array($value["records"]["record"][0])) {
// multiple records
} else {
// single record
}