Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 11

Как подставляя значение переменной к неполному имени переменной обратиться "куда надо"?

22.07.2017, 00:17. Показов 2322. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Салют,
нужно в циклах обращаться к разным переменным ($b1-$b5), но так ручками писать муторно, задумал подставлять к $b($i) значение другой переменной,
только не знаю как это правильно сделать...
переменные нужны для такой функции:
PHP
1
2
3
4
5
6
7
8
9
10
11
12
function uvel($a1, $a2, $a3, $a4, $a5) {
        for ($i = 1; $i <= 4; $i++) {
            while ($j <= 5) {
                $j++;
                if ($a(i) < $a(j)) {
                    $b(i) = $a(i);
                    $b(j) = $a(j);
            } else {$b(i) = $a(j);
                    $b(j) = $a(i);
            }
        }
    }
и ещё 1 вопрос: можно в данной функции менять направление? Скажем, подбор наоборот - в большую сторону, изменением в нём знака "<" на ">" (тут: if ($a(i) < $a(j)))? Если да, как это реализовать?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
22.07.2017, 00:17
Ответы с готовыми решениями:

Надо вывести название переменной, тип данных переменной, значение переменной
у нас есть переменная int variable = 0; Надо вывести название переменной, тип данных переменной, значение переменной как это сделать?

Надо вывести название переменной, тип данных переменной, значение переменной
у нас есть переменная int variable = 0; Надо вывести название переменной, тип данных переменной, значение переменной как это сделать?

Как по имени переменной вывести значение этой переменной?
К примеру: У нас есть заранее установленный переменные. Мы просим пользователя ввести имя переменной и выводим значение этой...

20
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.07.2017, 00:19
Цитата Сообщение от qbodp Посмотреть сообщение
только не знаю как это правильно сделать...
Правильно - использовать массивы
0
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 11
22.07.2017, 00:29  [ТС]
да тут не вижу смысла - по заданию надо из 5 введённых юзером чисел выстроить ряд по возрастанию, или убыванию - каждому окну для введения чисел можно присвоить и отдельную переменную и ячейку массива - я решил переменными обойтись
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.07.2017, 00:38
Цитата Сообщение от qbodp Посмотреть сообщение
по заданию надо из 5 введённых юзером чисел выстроить ряд по возрастанию, или убыванию
Да это же классическая задача на массиыв, но раз уж так хочется гвозди отверткой забивать http://php.net/manual/ru/langu... riable.php
0
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 11
22.07.2017, 00:41  [ТС]
PHP
1
2
3
4
5
6
7
8
9
10
11
12
    function uvel($m[1-5]) {
        for ($i = 1; $i <= 4; $i++) {
            while ($j <= 5) {
                $j++;
                if ($m[$i] < $m[j]) {
                    $n[$i] = $m[$i];
                    $n[$j] = $m[$j];
            } else {$n[$i] = $m[$j];
                    $n[$j] = $m[$i];
            }
        }
    }
так что-ли? я просто не знаю как тут массив правильно подставить
тут $m первый массив, $n второй
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
22.07.2017, 00:59
Цитата Сообщение от qbodp Посмотреть сообщение
так что-ли?
PHP/HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
<?php
    if (!empty($_GET['num'])) {
        $data = $_GET['num'];
        sort($data);
        foreach ($data as $n) {
            echo $n.' ';
        }
    }
?>
<form>
    <?php for ($i = 0; $i < 5; ++$i) : ?>
        <input type="number" name="num[]">
    <?php endfor ?>
    <input type="submit">
</form>
0
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 11
22.07.2017, 01:17  [ТС]
не нашёл ответа на вопрос...
мне надо использовать разделённую на 2 части переменную - первую я прописываю $b. Вторая часть переменной является значением другой переменной, в моём случае $i или $j, со значением от 1 до 5 - в зависимости от текущего цикла. Т. е. в первом цикле $b($i) = $b1, во-втором, та же $b(i) уже $b2, в третьем $b(i) становится $b3 и т. д.

я такую башню стругал:
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
43
44
45
46
47
48
49
50
<?php
    $m = array();
    $n = array();
    $m() = $_POST["a1"];
    $m() = $_POST["a2"];
    $m() = $_POST["a3"];
    $m() = $_POST["a4"];
    $m() = $_POST["a5"];
    $sort = $_POST["sort"];
    switch ($sort) {
        case "uvel":
        $ok = "$n[1], $n[2], $n[3], $n[4], $n[5]".uvel($m1-5);
        break;
        case "umen":
        $ok = "$n[1], $n[2], $n[3], $n[4], $n[5]".umen($m1-5);
        break;
    }
?>
    <form name="rz" action="primer.php" method="post">
        <input type="number" name="a1" />
        <input type="number" name="a2" />
        <input type="number" name="a3" />
        <input type="number" name="a4" />
        <input type="number" name="a5" />
        <select name="sort">
        <?php
            $sort = array("uvel" => "<", "umen" => ">");
            foreach ($sort as $key => $value) {
                echo "<option value='$key'>$value</option>";
            }
        ?>
        </select>
        <input type="submit" name="a_s" value="Упорядочить" />
        <?php
            if (isset($ok)) echo "<p>Результат: $ok<p>";
        ?>
<?php
    function uvel($m[1-5]) {
        for ($i = 1; $i <= 4; $i++) {
            while ($j <= 5) {
                $j++;
                if ($m[$i] < $m[j]) {
                    $n[$i] = $m[$i];
                    $n[$j] = $m[$j];
            } else {$n[$i] = $m[$j];
                    $n[$j] = $m[$i];
            }
        }
    }
?>
0
22 / 22 / 8
Регистрация: 21.07.2017
Сообщений: 74
22.07.2017, 03:41
Функции sort() и rsort() не подходят? Или это именно "учебная" задача? )

sort($m); //сортирует массив $m по возрастанию
rsort($m); //сортирует массив по убыванию
0
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 11
22.07.2017, 22:12  [ТС]
если честно, я про них первый раз слышу. Я занимаюсь по курсу PHP и MySQL с Нуля до Гуру от Дмитрия Русакова, и пытаюсь выполнить задание к 18 уроку, раздела основы php.
Самые распространённые и часто используемые функции, я заглянул в содержание, будут в следующем разделе, конечно не факт, что там будут рассмотрены sort() и rsort().
хотелось просто сделать задание, но пройденного материала явно не достаточно для его решения проходящим курс самостоятельно
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
22.07.2017, 22:16
Цитата Сообщение от qbodp Посмотреть сообщение
хотелось просто сделать задание
вы хотите просто сделать задание, как в школе. Сделать и забыть?
Или же понять как это делается? И работать в дальнейшем?

Я Вам советую заглядывать в мануал php.net. Много чего интересного подчеркнёте для себя. 80% вопросов отпадёт.
1
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 11
22.07.2017, 22:29  [ТС]
если подскажете более полноценный курс изучения php, или подскажете как решить моё задание, буду признателен
задание звучит так:
Напишите функцию, принимающую в качестве параметра массив, состоящий из чисел, а также булевский параметр. Данная функция должна возвращать отсортированный массив. Вид сортировки (по возрастанию, или по убыванию) должен зависеть от значения булевской переменной. Например, получено это: (5, 3, 7, -1, 0), а выдано должно быть (-1, 0, 3, 5, 7), или (7, 5, 3, 0, -1).

Добавлено через 2 минуты
сделав его, я буду понимать как это делается, поэтому хочу сделать, а если потом и забуду, я загляну в свою работу и вспомню

Добавлено через 3 минуты
спасибо за php.net - я английский плохо знаю, из-за этого много проблем, а тут руководство на русском нашёл - пока нет другого выхода, почитаю.
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
22.07.2017, 22:58
PHP
1
2
3
4
5
$_ = [5, 3, 7, -1, 0];
  sort($_);
print_r($_);
 rsort($_);
print_r($_);
Если же хотите делать не с помощью стандартных функций php, а ручками с помощью циклов , то смотрите алгоритмы сортировок массивов.

Цитата Сообщение от qbodp Посмотреть сообщение
я английский плохо знаю
я тоже. О нас позаботились
http://php.net/manual/ru/
0
22 / 22 / 8
Регистрация: 21.07.2017
Сообщений: 74
23.07.2017, 00:43
если подскажете более полноценный курс изучения php, или подскажете как решить моё задание, буду признателен
задание звучит так:
Напишите функцию, принимающую в качестве параметра массив, состоящий из чисел, а также булевский параметр. Данная функция должна возвращать отсортированный массив. Вид сортировки (по возрастанию, или по убыванию) должен зависеть от значения булевской переменной. Например, получено это: (5, 3, 7, -1, 0), а выдано должно быть (-1, 0, 3, 5, 7), или (7, 5, 3, 0, -1).
PHP
1
2
3
4
5
6
7
8
9
<?php
$arr=[5,3,7,-1,0];//Ваш массив.
$way=true; //булев параметр - если true - сортируем по возрастанию, если false - по убыванию.
function xsort($array,$left=true)  //функция принимает массив и булев параметр, если параметр не передан, считается,что параметр равен true.
{ if ($left==true){return sort($array);} //если параметр true используем встроенную функцию sort, которая сортирует массив с лева на право, и возвращаем результат работы функции в качестве.... кхм, результата работы нашей функции)) 
  if ($left==false){return rsort($array);} //если параметр false используем встроенную функцию rsort, которая сортирует массив с права на лево, и возвращаем результат работы функции в качестве.... кхм, результата работы нашей функции)) 
}
$arr=xsort($arr,$way); //присваеваем нашему массиву результат работы нашей функции, в массиве $arr отсортированный список.
var_dump($arr); //выводим результат и смотрим, как теперь устроен наш массив.

По поводу более полноценного курса - советую попробовать почитать "PHP7 в подлиннике" Котерова. Довольна информативно и охватывает много инфы. новичку самое-то. Мне зашло)
0
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 11
30.07.2017, 18:48  [ТС]
написал так:
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
<?php
    $m[] = $_POST["a1"];
    $m[] = $_POST["a2"];
    $m[] = $_POST["a3"];
    $m[] = $_POST["a4"];
    $m[] = $_POST["a5"];
    $sort = $_POST["s"];
?>
<html>
    <head>
        <title>Решение задания</title>
    </head>
    <body>
        <form name="rz" action="primer.php" method="post">
        <input type="number" name="a1" />
        <input type="number" name="a2" />
        <input type="number" name="a3" />
        <input type="number" name="a4" />
        <input type="number" name="a5" />
        <select name="s">
            <?php
                $sort = array("true" => "<", "false" => ">");
                foreach ($sort as $key => $value) {echo "<option value='$key'>$value</option>";}
            ?>
        </select>
        <input type="submit" name="a_s" value="Упорядочить" />
        <?php
            if (isset($m)) {echo "<p>Результат: "var_dump($m)".sss($m, $sort)"}
        ?>
    </body>
<?php
    function sss($array, $s = true) {
        if ($s == true) {return sort($array);}
        if ($s == false) {return rsort($array);}
    }
?>
</html>
но ругается:
Parse error: syntax error, unexpected T_STRING, expecting ',' or ';' in O:\home\work.ww\www\osnovi_php\primer.ph p on line 28

что тут не так?
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
30.07.2017, 19:42
Цитата Сообщение от qbodp Посмотреть сообщение
что тут не так?
Не хватает точки с запятой

Добавлено через 2 минуты
Цитата Сообщение от qbodp Посмотреть сообщение
$m[] = $_POST["a1"];
* * $m[] = $_POST["a2"];
* * $m[] = $_POST["a3"];
* * $m[] = $_POST["a4"];
* * $m[] = $_POST["a5"];
Что за упорное желание не делать "по-человечески", а каким-то жутким методом. Я приводил пример как можно передавать массив из формы в скрипт
0
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 11
30.07.2017, 19:50  [ТС]
я ставил точку с запятой, тот же результат... может не там?
PHP
1
if (isset($m)) {echo "<p>Результат: "var_dump($m)".sss($m, $sort)";}
я слишком тупой, чтоб понять, как работает тот скрипт, поэтому и делаю по простому - пока так (потому что понятно, может со временем дойду и до уровня того скрипта). Не хочу обидеть, просто всё сразу учить для меня слишком тяжко, а хочется понимать как там всё "крутится"
0
Эксперт PHP
4925 / 3920 / 1620
Регистрация: 24.04.2014
Сообщений: 11,441
30.07.2017, 20:02
PHP
1
if (isset($m)) {echo "<p>Результат: ".print_r($m, true).sss($m, $sort);}
0
0 / 0 / 0
Регистрация: 07.10.2016
Сообщений: 11
30.07.2017, 20:31  [ТС]
не пашет... вся страница целиком
0
0 / 0 / 0
Регистрация: 18.01.2018
Сообщений: 2
18.01.2018, 23:23
Решение задания:

Напишите функцию, принимающую в качестве параметра массив, состоящий из чисел, а также булевский параметр. Данная функция должна возвращать отсортированный массив. Вид сортировки (по возрастанию, или по убыванию) должен зависеть от значения булевской переменной. Например, получено это: (5, 3, 7, -1, 0), а выдано должно быть (-1, 0, 3, 5, 7), или (7, 5, 3, 0, -1).


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
<?php
$arr = array(5, 3, 7, -1, 0);
$sort = $_POST["sort"];
switch ($sort) {
    case 'descendingly':
        rsort($arr);
        break;
    case 'ascending':
        sort($arr);
        break;
}
 
for ($i = 0; $i < count($arr); $i++){
        echo $arr[$i]." ";
}
?>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
    <form name="form" action="dz2.php" method="post">
        <label>Отсортировать:</label>
        <select name="sort">
            <?php
                $operations = array("descendingly" => "По убыванию", "ascending" => "По возрастанию");
                foreach ($operations as $key => $value) {
                    if ($sort == "$key") echo "<option value='$key' selected>$value</option>";
                    else echo "<option value='$key'>$value</option>";
                }
                ?>
        </select>
        <input type="submit" name="send" value="Отсортировать">
    </form>
</body>
</html>
0
Особый статус
 Аватар для FloppyDisc
623 / 221 / 164
Регистрация: 18.11.2015
Сообщений: 1,086
19.01.2018, 11:37
вот это тоже
PHP
1
if (isset($m)) {echo "<p>Результат: "var_dump($m)".sss($m, $sort)"}
на
PHP
1
if (isset($m)) {echo "<p>Результат: ".var_dump(sss($m, $sort))}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.01.2018, 11:37
Помогаю со студенческими работами здесь

Как обратиться к переменной по ее имени?
В runtime необходимо обратиться к переменной, хранящей объект. Имя этой переменной содержится в переменной типа String. Мне нужно...

Как обратиться к объекту, в частности к JButton, по имени, которое находится в переменной?
Я по определенному алгоритму получаю имя JButton, которых в общем 40 штук, у которой надо изменить свойство. Естественно я получаю имя...

Нюансы синтаксиса: куда прижимать звёздочку при объявлении указателя - к имени типа или к имени переменной?
Скажите, пожалуйста, в чём отличие таких записей: int *px int* px int *px = new int int *px = new int* int* px = new int ...

Как обратиться к переменной, если после функции тебе дали строку, с именем переменной
Допустим есть Function Generation():String; там генерируется строка, с именем нашего обьекта(имя объекта мы не знаем которое выпадет). ...

Обратиться к переменной в библиотеке по имени
Помогите разобраться с этой библиотекой. Суть проблемы: Есть Dictionary&lt;string, double&gt;, где содержаться сведения о...


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru