Как l oop данные из многомерных массивов в PHP и вставить их в HTML - PullRequest
0 голосов
/ 06 мая 2020

Я новичок в PHP и все еще борюсь с простейшими задачами. Я выполнил поиск по inte rnet, но не смог найти или найти правильное решение.

Допустим, у меня есть две страницы: одна - index. php, где я хочу отобразить список гиперссылок и названий соответствующих страниц, на которые они ведут. Другой - functions. php, где я сохранил массив, содержащий мои ссылки и заголовки. Кроме того, я знаю, что массивы можно хранить в лучшем месте, чем функции. php, но пока это не относится к делу.

Это мой HTML в индексе. php page:

<ul class="row">

<li class="col-6 col-lg-4">
  <a class="hyperlink" href="<?php echo $pageitem['link'] ?>">
    <div class="page-item">
      <**SVG icon goes here, disregard**>
      <span><?php echo $pageitem['title'] ?></span>
    </div>
  </a>
</li>

<li class="col-6 col-lg-4">
  <a class="hyperlink" href="<?php echo $pageitem['link'] ?>">
    <div class="page-item">
      <**SVG icon goes here, disregard**>
      <span><?php echo $pageitem['title'] ?></span>
    </div>
  </a>
</li>

<li class="col-6 col-lg-4">
  <a class="hyperlink" href="<?php echo $pageitem['link'] ?>">
    <div class="page-item">
      <**SVG icon goes here, disregard**>
      <span><?php echo $pageitem['title'] ?></span>
    </div>
  </a>
</li>

</ul>

Это мой массив:

$pageitems = array (
  array('link' => 'https://website-one.com', 'title' => 'Website 1'),
  array('link' => 'https://website-two.com', 'title' => 'Website 2'),
  array('link' => 'https://website-three.com', 'title' => 'Website 3'),
);

И это моя функция, которая, как я надеялся, будет oop проходить через каждый подмассив и отображать ссылку и заголовок в элементы страницы в индексе. php page:

$i = 0;

foreach ( $pageitems as $pageitem ) {
  $i++;
  foreach ( $pageitem as $key => $value )
  {
  return $pageitem['link'];
  return $pageitem['title'];
  }
}

Но нет - он повторяет только первую пару ссылки и заголовка (website-one.com, Website 1) на каждом элементе страницы в индексе страница, например l oop зависает после первой итерации.

1 Ответ

1 голос
/ 06 мая 2020

Думаю, вам нужно перебрать имеющийся у вас массив и поместить li внутри foreach l oop, например:

<ul class="row">

<?php
    $pageitems = array (
        array('link' => 'https://website-one.com', 'title' => 'Website 1'),
        array('link' => 'https://website-two.com', 'title' => 'Website 2'),
        array('link' => 'https://website-three.com', 'title' => 'Website 3'),
    );

    foreach ($pageitems as $pageitem) {
?>

<li class="col-6 col-lg-4">
  <a class="hyperlink" href="<?php echo $pageitem['link'] ?>">
    <div class="page-item">
      <**SVG icon goes here, disregard**>
      <span><?php echo $pageitem['title'] ?></span>
    </div>
  </a>
</li>

<?php
    }
?>
</ul>

Если вам лучше иметь $pageitems в другом файле вы можете использовать include('function.php'); в любой точке перед foreach l oop.

...