Вставка добавленной логики на лету в PHP для цикла, который генерирует массив - PullRequest
0 голосов
/ 06 марта 2012

Ситуация: у меня есть слайдер на первой странице, где пользователи могут выбирать из меню опций, какие страницы они хотят включить в слайдер на первой странице.Опции хранятся в статическом массиве и распечатывают выбранные пользователем значения вплоть до того предела, который я определяю, см. Код ниже.

<?
        // Counts the Number of Boxes available for the front page slider
        $numberOfBoxes = 6; 

        $group = array (); // Create an empty array to store all of your final data


        //Counts all the checkboxes and their corresponding sliderboxes
        for ( $a = 1; $a <= $numberOfBoxes; $a++ )
        {
            if (${'checkBox_'.$a} == TRUE){

            $tempDefaultArray = ${'sliderBox_'.$a};
            array_push($group , $tempDefaultArray); // Push the data to the $group array
            }
        }

        $arraySize = sizeof($group); // Find the size of the final array

        // Take the outcome from the above calculations and create slider
        for ( $i = 0; $i <= ($arraySize - 1); $i++ )
        {
            $image = $group[$i]['image'];
            $title = $group[$i]['title'];
            $tagline = $group[$i]['tagline'];
            $url = $group[$i]['url'];
            $vanityUrl = $group[$i]['vanityUrl'];

            print'
            <li '.$sliderDivider.'>
            <img src="'.$image.'" border="0"/>
            <h1>'.$title.'</h1>
            <p>'.$tagline.'</p>
            <a href="'.$url.'" '.$sliderLink.'/>'.$vanityUrl.'</a>
            ';}?>

Проблема: Это работает отлично, но я хочу сказать, что еслиопределенная внешняя переменная установлена ​​и / или имеет значение true, что третье поле в моем ползунке будет заполнять данные из определенного объекта в моем массиве.Я хотел бы сохранить функциональность этой существующей логики и просто включить некоторые дополнительные, чтобы переопределить третий блок, если эта переменная установлена.

Пример: я выбираю для моих параметров ползунка следующие: Статья 1, Статья 2, Блог 1, Изображение 1, а затем в отдельной области настройки пользователь выбирает видео YouTube.По умолчанию, когда эта переменная установлена, давайте назовем ее $ youTube, тогда третий вариант (в этом бывшем блоге 1) будет по умолчанию YouTube.Дополнительное примечание: этот блок по умолчанию находится в том же массиве, что и статические параметры.

Это довольно сложно объяснить, и если бы они были любителями ниндзя, которые могли бы порекомендовать эффективный способ справиться с этим, я был бы признателен.

1 Ответ

0 голосов
/ 06 марта 2012

Хм, если я правильно понял ваш вопрос, вы хотите иметь переопределение в вашем цикле, если определенное условие установлено вне переменных массива?

Вы можете поместить оператор if в свой цикл, проверяя внешнюю переменную:

if($external_var=="something") {
    $image = $static_array['image'];
    $title = $static_array['title'];
    $tagline = $static_array['tagline'];
    $url = $static_array['url'];
    $vanityUrl = $static_array['vanityUrl'];
} else {
    $image = $group[$i]['image'];
    $title = $group[$i]['title'];
    $tagline = $group[$i]['tagline'];
    $url = $group[$i]['url'];
    $vanityUrl = $group[$i]['vanityUrl'];
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...