РЕШЕНИЕ: Пожалуйста, см. Мой ответ, как я исправил свои проблемы.PHP Rotator с использованием многомерных массивов
Я не уверен, что это возможно или нет, поскольку я мало знаю о массивах, но здесь ничего не происходит.
Я хочу добавить рекламу на свой сайт.
Я понял, что могу найти способ реализации многомерных массивов в этом для управления контентом.
Я пришел с этим:
$ads = array(
"ad1" => array(
title => "Advertisement Title",
url => "http://example.com",
image => "http://example.com/images/example.jpg",
description => "Advertisement Description"),
"ad2" => array(
title => "Advertisement Title",
url => "http://example.com",
image => "http://example.com/images/example.jpg",
description => "Advertisement Description"),
"ad3" => array(
title => "Advertisement Title",
url => "http://example.com",
image => "http://example.com/images/example.jpg",
description => "Advertisement Description")
);
Я побежал этот код через синтаксис проверки, и не было никаких ошибок, поэтому я решил, что я, по крайней мере на правильном пути.
Я не понимаю, как написать цикл foreach
, который случайным образом выбирает одну из рекламных объявлений.
Должен ли я изменить "ad1" => array(
на ad[1] => array(
?
Я не использовал слишком много массивов, поэтому я не знаю, как настроить таргетинг определенной части этого в каждом цикле.
Я надеюсь придумать цикл по каждому элементу, который будет что-то вроде:
<a href="UrlFromArray"><img src="ImageSrcFromArray" alt="TitleFromArray">
<br>
<p>DescriptionFromArray</p>
Является ли это достижимо?
EDIT & UPDATE:
function displayAds728x90() {
$ads = array(
"ad1" => array(
'title' => "Advertisement Title",
'url' => "http://example.com",
'image' => "http://example.com/images/example.jpg",
'description' => "Advertisement Description"),
"ad2" => array(
'title' => "Advertisement Title",
'url' => "http://example.com",
'image' => "http://example.com/images/example.jpg",
'description' => "Advertisement Description"),
"ad3" => array(
'title' => "Advertisement Title",
'url' => "http://example.com",
'image' => "http://example.com/images/example.jpg",
'description' => "Advertisement Description")
);
$randomAd = array_rand($ads);
echo '<a href="'.$randomAd->url.'" target="_blank">';
echo '<img src="'.$randomAd->image.'" alt="'.$randomAd->title.'">';
echo '</a>';
echo '<p>';
echo $randomAd->description;
echo '</p>';
}
displayAds728x90();
После ответа, данного Dynelight я придумываю коду выше.
Теперь мой единственный вопрос я получаю следующие ошибки:
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 23
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 24
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 24
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 27
Точно так же вы знаете, какие номера строк, которые мой полный код:
<img src="http://www.example.com/images/your_banner_here.png">
<?php
function displayAds728x90() {
$ads = array(
"ad1" => array(
'title' => "Advertisement Title",
'url' => "http://example.com",
'image' => "http://example.com/images/example.jpg",
'description' => "Advertisement Description"),
"ad2" => array(
'title' => "Advertisement Title",
'url' => "http://example.com",
'image' => "http://example.com/images/example.jpg",
'description' => "Advertisement Description"),
"ad3" => array(
'title' => "Advertisement Title",
'url' => "http://example.com",
'image' => "http://example.com/images/example.jpg",
'description' => "Advertisement Description")
);
$randomAd = array_rand($ads);
echo '<a href="'.$randomAd->url.'" target="_blank">';
echo '<img src="'.$randomAd->image.'" alt="'.$randomAd->title.'">';
echo '</a>';
echo '<p>';
echo $randomAd->description;
echo '</p>';
}
displayAds728x90();
?>
Любые идеи о том, что является причиной эти ошибки?
UPDATE 2:
Под редакцией следующий раздел и добавлены недостающие биты кода:
$randomAd = array_rand($ads);
echo '<a href="'.$ads->$randomAd->url.'" target="_blank">';
echo '<img src="'.$ads->$randomAd->image.'" alt="'.$ads->$randomAd->title.'">';
echo '</a>';
echo '<p>';
echo $ads->$randomAd->description;
echo '</p>';
Выполненный var_dump
на $ads
и получил следующее:
array(3) { ["ad1"]=> array(4) { ["title"]=> string(19) "Advertisement Title" ["url"]=> string(18) "http://example.com" ["image"]=> string(37) "http://example.com/images/example.jpg" ["description"]=> string(25) "Advertisement Description" } ["ad2"]=> array(4) { ["title"]=> string(19) "Advertisement Title" ["url"]=> string(18) "http://example.com" ["image"]=> string(37) "http://example.com/images/example.jpg" ["description"]=> string(25) "Advertisement Description" } ["ad3"]=> array(4) { ["title"]=> string(19) "Advertisement Title" ["url"]=> string(18) "http://example.com" ["image"]=> string(37) "http://example.com/images/example.jpg" ["description"]=> string(25) "Advertisement Description" } }
Уходя из полный код страницы, размещенный выше ошибок, теперь:
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 23
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 23
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 24
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 24
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 24
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 24
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 27
Sorry, an error happened. Please try again later
Error 8 : Trying to get property of non-object in /home/jollyrogerpcs/public_html/includes/adRotator728_90.php on line 27
Я следил за вашим предложением и придумал код. Теперь я просто получаю ошибки, что означает, что он прогрессирует :) см. Мое редактирование? –
http://php.net/array_rand «Выбирает одну или несколько случайных записей из массива и возвращает ключ (или ключи) случайных записей». – Jessica
@ Джессика собирает их :), но где-то в моем коде у меня все еще есть ошибки при попытке «эхо» ключевых значений :) Я уверен, что это простое исправление. –