Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
 
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> Возврат массива из функции
Gaer  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 49
Пользователь №: 43135
На форуме: 5 месяцев, 6 дней
Карма:




Помогите разобраться, как правильно получить массив из функции?

<?php

echo 'С помощью цикла while выведите все числа в промежутке от 0 до N (задается пользователем), которые делятся на M (задается пользователем) без остатка.';

echo "<form action='test.php' method='post'> <fieldset> <legend> Задача №3.1 'Вывод последовательности чисел' </legend>";
echo "<span> Предел последовательности </span><input type='number' name='num31'><br>";
echo "<span> Значение делителя </span><input type='number' name='num32'><br>";
echo "<input type='submit' value='ввод'>";
echo "</fieldset> </form> ";

$num31 = $_POST['num31'];
$num32 = $_POST['num32'];
$arr=[];

function fun1($num31, $num32, $arr) {

while ($num31 > 0) {

if ($num31%$num32 == 0){
$arr[]=$num31;
return $arr;
$num31--;
} else {
$num31--;
}
}
}


fun1($num31, $num32);
sort($arr);
var_dump($arr);

?>


В приведенном примере массив возвращается пустой, как корректно получить массив из функции?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Gaer  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 49
Пользователь №: 43135
На форуме: 5 месяцев, 6 дней
Карма:




Корректно работает следующий код

<?php

echo "<form action='test.php' method='post'> <fieldset> <legend> Задача №3.1 'Вывод последовательности чисел' </legend>";
echo "<span> Предел последовательности </span><input type='number' name='num31'><br>";
echo "<span> Значение делителя </span><input type='number' name='num32'><br>";
echo "<input type='submit' value='ввод'>";
echo "</fieldset> </form> ";

$num31 = $_POST['num31'];
$num32 = $_POST['num32'];

function fun1($num31, $num32) {

while ($num31 > 0) {

if ($num31%$num32 == 0){
echo $num31.'; ';
$num31--;
} else {
$num31--;
}
}
}


fun1($num31, $num32);

?>


Но хотелось бы получить массив значений
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 9 дней
Карма: 170




Сам учишь или студент?
На лицо полное непонимание того, что делают функции и для чего они нужны.

Разберись с функциями, с параметрами функций, с возвращаемыми значениями.
1 час чтения + 1 час написание тестов.
После этого сразу станет всё ясно, что у тебя не так.


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Gaer  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 49
Пользователь №: 43135
На форуме: 5 месяцев, 6 дней
Карма:




Сам учу. Какую книгу посоветуете?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
AllesKlar  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3375
Пользователь №: 38635
На форуме: 2 года, 11 месяцев, 9 дней
Карма: 170




Цитата (Gaer @ 12.07.2016 - 17:09)
Сам учу. Какую книгу посоветуете?


--------------------
[продано копирайтерам]
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
[x] Дата
Цитировать сообщение

Пользователь сейчас на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 10 дней
Карма: 21




Массив нужно выводить после цикла return $arr; иначе там будет только последнее значение. А вывод результата функции можно сделать так например : print_r (fun1($num31, $num32));



С помощью цикла while выведите все числа в промежутке от 0 до N (задается С помощью цикла while выведите все числа в промежутке от 0 до N (задается пользователем), которые делятся на M (задается пользователем) без остатка.
<form action='test.php' method='POST'>
<fieldset>
<legend>
Задача №3.1 'Вывод последовательности чисел' </legend>
<span>
Предел последовательности </span>
<input
type='number' name='num31'><br>
<span>
Значение делителя </span>
<input
type='number' name='num32'><br>
<input
type='submit' value='ввод'>
</fieldset>
</form>



<?php
$num31 = $_POST['num31'];
$num32 = $_POST['num32'];
function fun1($num31, $num32) {
$arr=array();
while ($num31 > 0)
{
if ($num31%$num32 == 0)
{
$arr[]=$num31;
}
$num31--;
}
sort($arr);
return $arr;
}
$result_arr=fun1($num31, $num32);
print_r($result_arr);
?>


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 10 дней
Карма: 21




Попробуйте, так!


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    1   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Gaer  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 49
Пользователь №: 43135
На форуме: 5 месяцев, 6 дней
Карма:




Проверил массив пустой 8(
При $num31=123 $num32=12 должно вернуться 120; 108; 96; 84; 72; 60; 48; 36; 24; 12;
Но за желание помочь - спасибо 8)
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Gaer  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 49
Пользователь №: 43135
На форуме: 5 месяцев, 6 дней
Карма:




arbuzmaster, заработало, спасибо!!!
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
arbuzmaster  
Дата
Цитировать сообщение

Пользователь сейчас на форуме



Новичок
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 720
Пользователь №: 37872
На форуме: 3 года, 4 месяца, 10 дней
Карма: 21




Должно работать, у мну работает, добавил sotr. Хотя его можно тоже в функцию запихнуть. И еще проверки на ноль и пустоту добавьте, некрасиво как то на ноль делить!
Warning:  Division by zero in


sort($arr);
return $arr;


--------------------
PMПисьмо на e-mail пользователюСайт пользователя
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 16 дней
Карма: 167




Цитата (Gaer @ 12.07.2016 - 18:09)
Сам учу. Какую книгу посоветуете?

вот эту например http://softtime.ru/php5/?id_article=117
и упаси вас от видеокурсов


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Gaer  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Новичок
*

Профиль
Группа: Пользователь
Сообщений: 49
Пользователь №: 43135
На форуме: 5 месяцев, 6 дней
Карма:




Valick спасибо! Подскажите пожалуйста, издание 2009г на текущий момент является актуальным? Мне советовали не брать материалы по PHP старше 4х лет.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Valick  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 5493
Пользователь №: 35718
На форуме: 4 года, 16 дней
Карма: 167




Gaer, там описаны основы РНР, они не имеют срока давности, а нюансы относительно новых версий языка вы сами разберёте в последствии.


--------------------
wmr - R281553014107
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темы Ответ в темуСоздание новой темыСоздание опроса