Давайте припустимо, що повернене значення пошукового fuction має щось подібне
// 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"]
]
]
]
що буде найкращим способом отримати важливу інформацію (у випадку декількох записів - завжди перша)?
Я повинен перевірити щось подібне
if (array_values($value["record"]["records"])[0] == 0){//do something};
Але, мабуть, є спосіб більш елегантного рішення.
Редагувати: До речі, це не є дублікатом запитаного питання, яке охоплює лише кілька записів.
Відповіді:
0 для відповіді № 1Якщо ви хочете перший елемент масиву, ви повинні використовувати reset
. Ця функція встановлює покажчик на перший елемент і повертає його.
$firstValue = reset($value["record"]["records"]);
Редагувати .. прочитавши ваше запитання знову, здається, ви не хочете першого елемента. Ви бажаєте цього
if (isset($value["record"]["records"][0]) && is_array($value["record"]["records"][0])) {
// multiple return values
} else {
// single return value
}
Робити це свого роду помилка proun і я б не "т припустити, що одна функція повертає різні види структур масиву.
0 для відповіді № 2
перевірити, як це ..
if(is_array($value["records"]["record"][0])) {
// multiple records
} else {
// single record
}