Задать вопрос

Как правильно вывести foreach в php?

Здравствуйте. Есть несколько строк, которые преобразованы в массив:

$name_array    = explode(", ", $name);
        $company_array = explode(", ", $company);
        $rev_array     = explode(", ", $rev);


Когда я пытаюсь все это дело вывести на сайте, то происходит следующее: фотографии отображаются отлично, а вот с именем проблема, выглядит вот так:

60e3e2f02db89051243362.jpeg

Вот мой код, который все это выводит:

<?php foreach ( $photo as $photos ) { ?>
                                    <div class="swiper-slide ">
                                       <div class="tm tm--default">
                                           <div class="tm__author">
                                           <div class="tm__avatar">
                                               <img src="/upload/<?php echo html_image_src($photos, $size_preset='original', $is_add_host=false, $is_relative=true) ?>" class="js-bg">      
                                            </div>
                                               <div class="tm__info">
                                                   <h6 class="tm__name">
                                                       <?php foreach($name_array as $names) { ?>
                                                       <?= $names; ?>
                                                       <?php } ?></h6>
                                                   <p class="tm__position">Компания</p>
                                               </div>
                                           </div>
                                           <div class="tm__content">
                                               <p class="tm__text">“Been using the theme for 4-5 years or more, should have given a review earlier. I amm not a web design pro but I know the basics.”</p>
                                            </div>
                                       </div>
                                   </div>
                                   <?php } ?>


Что я делаю неправильно?
  • Вопрос задан
  • 280 просмотров
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
nokimaro
@nokimaro
Меня невозможно остановить, если я смогу начать.
<?php
foreach ( $photo as $idx => $photos ) { ?>
    <div class="swiper-slide ">
       <div class="tm tm--default">
           <div class="tm__author">
           <div class="tm__avatar">
               <img src="/upload/<?php echo html_image_src($photos, $size_preset='original', $is_add_host=false, $is_relative=true) ?>" class="js-bg">
            </div>
               <div class="tm__info">
                   <h6 class="tm__name"><?= $name_array[$idx]; ?></h6>
                   <p class="tm__position"><?= $company_array[$idx]; ?></p>
               </div>
           </div>
           <div class="tm__content">
               <p class="tm__text"><?= $rev_array[$idx]; ?></p>
            </div>
       </div>
    </div>
<?php } ?>
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
Nordic_Alf
@Nordic_Alf
PHP Developer
Удали эту хрень и нормальную структуру данных сделай в один массив, а не по разным массивам распихивай. Перебираешь форичем и по ключу подставляешь.
$array = [
     0 => [
        'name' => 'Алексей',
        'surname' => 'Петреченко',
        'photo' => 'путь'
     ],
     1 => [
        'name' => 'Саша',
        'surname' => 'Васильченко',
        'photo' => 'путь'
     ]
];

foreach($array as $item) {
   echo $item['name'];
   echo $item['photo'];
}
Ответ написан
Комментировать
@JohnDidact
Нуб во всём
"<?php echo html_image_src($photos, $size_preset='original', $is_add_host=false, $is_relative=true) ?>"
что за такое?

Ну а что ты хотел? Ты в цикле фоток, в каждой итерации, перебираешь и выводишь все имена из name_array.

Либо заполняй массив принадлежащими друг к другу данными и проходи по нему foreachем, либо проходи по одному из массивов while() или for() и работай в каждом массиве с итерируемым индексом/ключём (хотя, можно и foreach использовать, только с $key => $value), только ты должен на 146% быть уверенным, что массивы имеют одинаковое количество значений и соответствующие ключи/индексы
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы