Я просмотрел кучу вопросов здесь, и мне показалось, что у меня есть похожие вопросы, но ни один из них, похоже, не работал в моей ситуации (или, по крайней мере, я не мог заставить их работать), так что, надеюсь, это не такэто не точное повторение.
Я построил массив, который выглядит следующим образом:
Array
(
[0] => Array
(
[article_id] => 1
[article_title] => Article 1
[article_content] => This is some dummy text for the first article.
)
[1] => Array
(
[article_id] => 2
[article_title] => Article 2
[article_content] => This is the content for article #2
)
)
Итак, массив имеет 3 ключа (article_id, article_title, article_content), и то, что я пытаюсьсделать, это получить определенное значение по определенному индексу.
Так, например, если URL-адрес страницы
/article.php?id=1
Сначала я назначаю идентификатор переменной:
$linkID = $_GET['id'];
и теперь я хочу выполнить поиск в массиве, чтобы найти совпадение идентификатора статьи (с переменной $ LinkID):
$foundAtPos = array_search($linkID, array_column($datas, 'article_id'));
это прекрасно работает и дает мне соответствующую «индексную» позицию,это хорошее начало, и теперь я хочу присвоить переменным два других значения ключа (или отобразить их на экране, что-то, чтобы показать мне, что я получил правильное значение id - article_title).
Это та часть, где я действительно застреваю.Я могу легко отобразить все значения из массива, но я не собираюсь этого делать.Я хочу получить ТОЛЬКО конкретные значения, соответствующие соответствующему article_id.
Вот несколько вещей, которые я пробовал (безуспешно):
foreach ($datas as $keyName) {
echo $keyName['article_title'];
}
Это дает мне все названия статей, ноэто не то, к чему я стремлюсь.
Этот бит я получил от другого поста переполнения стека, и казалось, что он был близок, но я не мог правильно его адаптировать.
foreach($datas as $firstKey => $firstValue) {
echo array_keys($firstValue, $firstValue['article_title'])[0].': '.$firstValue['article_title'].'</br>';
}
Та же проблема, дает мне все данные, а не только строку, которую я пытаюсь получить.
Итак, я ходил кругами часами, и кажется, что это должно быть обычным делом, но этоускользает от меня на данный момент, так что я буду признателен за любые предложения, которые вы, ребята, могли бы сделать.
Вот моя функция, для справки.
if (isset($_GET['id'])) {
$linkID = $_GET['id'];
foreach ($datas as $keyName) {
//echo $keyName['article_title'];
}
//foreach($datas as $firstKey => $firstValue) {
//echo array_keys($firstValue, $firstValue['article_title'])[0].': '.$firstValue['article_title'].'</br>';
//}
//retrieve index of match in array
$foundAtPos = array_search($linkID, array_column($datas, 'article_id'));
print_r($datas[$foundAtPos]);
} else {
header('Location: index.php');
exit();
}
спасибо!