11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
1

Функция со switch и foreach

21.07.2014, 19:36. Показов 2679. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет. К сожалению слабо разбираюсь в функциях, но нужно следующее: есть БД с парой ключ значение(2 столбца + id). вот код который должен подставлять значения:
PHP
1
2
3
4
5
6
7
function explod($data){
        switch($data){
        foreach($row_ege as $key => $value){
        case $row_ege['tut_id']:echo $row_ege['course'];break;
        }
        }
    }
Php ругается на синтаксис... что я не так делаю???
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.07.2014, 19:36
Ответы с готовыми решениями:

Foreach switch
Есть такая часть кода foreach (explode("\r\n", $str) as $k) { $keys =...

Не работает switch в конструкции foreach
Помогите, пожалуйста, новичку с освоением самых-самых основ php. Почему switch в данном случае не...

Функция foreach
$rusRegions = array( "Московская область" => array('Москва', 'Апрелевка', 'Коломна', 'Кашира'),...

Кодировка и функция foreach. Что не так?
все что можно было перекодировать и и файл и проект и апач везде кодировка UTF-8 без BOM и все...

5
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
21.07.2014, 19:48 2
Цитата Сообщение от lemuriec Посмотреть сообщение
PHP
1
2
3
switch($data){
foreach($row_ege as $key => $value){
case $row_ege['tut_id']:echo $row_ege['course'];break;
О господи, это вообще законно?

Цитата Сообщение от lemuriec Посмотреть сообщение
что я не так делаю???
все. Лично мне не из Ваших слов, не из кода совершенно не понятно даже примерно что Вы хотели сделать. А код вообще выходит за все рамки приличия)

Цитата Сообщение от lemuriec Посмотреть сообщение
вот код который должен подставлять значения:
какие значения? куда? откуда? покажите пример текста, который должен выводить скрипт, и пример входных данных, или что вообще он должен делать?
0
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
21.07.2014, 20:09  [ТС] 3
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
$egeex = explode(",",$row_Price['ege']);
    switch($egeex[0]){
    case "0":echo "нет";break;
    case "1":echo "русский язык";break;
    case "2":echo "математика";break;
    case "3":echo "обществознание";break;
    case "4":echo "физика";break;
    case "5":echo "история";break;
    case "6":echo "биология";break;
    case "7":echo "иностранный язык";break;
    case "8":echo "общий менеджмент";break;
    case "9":echo "основы экономической теории";break;
    case "10":echo "теория (экономических) информационных систем";break;
        }
        echo ", ";
        switch($egeex[1]){
    case "0":echo "нет";break;
    case "1":echo "русский язык";break;
    case "2":echo "математика";break;
    case "3":echo "обществознание";break;
    case "4":echo "физика";break;
    case "5":echo "история";break;
    case "6":echo "биология";break;
    case "7":echo "иностранный язык";break;
    case "8":echo "общий менеджмент";break;
    case "9":echo "основы экономической теории";break;
    case "10":echo "теория (экономических) информационных систем";break;
        }
        echo ", ";
    switch($egeex[2]){
    case "0":echo "нет";break;
    case "1":echo "русский язык";break;
    case "2":echo "математика";break;
    case "3":echo "обществознание";break;
    case "4":echo "физика";break;
    case "5":echo "история";break;
    case "6":echo "биология";break;
    case "7":echo "иностранный язык";break;
    case "8":echo "общий менеджмент";break;
    case "9":echo "основы экономической теории";break;
    case "10":echo "теория (экономических) информационных систем";break;
        }
вот этот код нужно укоротить. все предметы есть в БД. можно как то switch в функцию загнать?

Добавлено через 1 минуту
pav1uxa, $row_Price['ege'] содержит 3 цифры разделенные запятыми
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
21.07.2014, 21:02 4
Лучший ответ Сообщение было отмечено lemuriec как решение

Решение

Цитата Сообщение от lemuriec Посмотреть сообщение
можно как то switch в функцию загнать?
Конечно) Из предметов можно создать массив, а элементы массива $egeex использовать как ключи для массива предметов.
PHP
1
2
3
4
5
6
7
8
<?php
$ege = "1,2,3";
$egeex = explode(",",$ege);
$a=["нет","русский язык","математика","обществознание","физика","история",
    "биология","иностранный язык","общий менеджмент","основы экономической теории",
    "теория (экономических) информационных систем"];
foreach ($egeex as $v)
    echo $a[$v]."<br>\r\n";
Или вот так для наглядности.
PHP
1
2
3
4
5
6
7
8
9
<?php
$ege = "1,2,3";
$egeex = explode(",",$ege);
$a=["нет","русский язык","математика","обществознание","физика","история",
    "биология","иностранный язык","общий менеджмент","основы экономической теории",
    "теория (экономических) информационных систем"];
echo $a[$egeex[0]]."<br>\r\n";
echo $a[$egeex[1]]."<br>\r\n";
echo $a[$egeex[2]]."<br>\r\n";
Код
русский язык
математика
обществознание
0
11 / 11 / 2
Регистрация: 30.03.2010
Сообщений: 199
21.07.2014, 21:18  [ТС] 5
pav1uxa,
PHP
1
2
3
$a=["нет","русский язык","математика","обществознание","физика","история",
    "биология","иностранный язык","общий менеджмент","основы экономической теории",
    "теория (экономических) информационных систем"];
дает ошибку

Добавлено через 2 минуты
а все...скобки круглые надо просто)
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
21.07.2014, 22:35 6
Цитата Сообщение от lemuriec Посмотреть сообщение
дает ошибку
Добавлено через 2 минуты
а все...скобки круглые надо просто)
Старая версия php у Вас просто... Начиная с php 5.4 массивы можно объявлять так.
0
21.07.2014, 22:35
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2014, 22:35
Помогаю со студенческими работами здесь

Функция foreach или перебор массива
Имеется форма с textarea: &lt;textarea name=&quot;names&quot; cols=&quot;20&quot; rows=&quot;10&quot;&gt;&lt;/textarea&gt; И ее...

Функция switch
Имеется код, который в зависимости от значения дискриминанта d выдает три различных сообщения....

Функция rename в связке с foreach не хочет правильно работать
У меня есть директория, там есть файлы такого форматирования &quot;название1.2017-01-02.txt&quot;, все эти...

Представить блок схему для двух участков кода: foreach и switch (mode) case
Помогите представить это структурно. 1. switch (mode) case private void button1_Click(object...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru