Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Возврат одномерного массива из функции / 16 сообщений из 16, страница 1 из 1
31.03.2014, 16:49
    #38601104
Антон Щёлкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
Доброго времени суток.
Мне нужно вернуть из функции массив, но я что-то делаю не так и в итоге массив не только не возвращается, а при более детальном рассмотрении полностью уничтожается. Собственно, вот код:

Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
$num = array(4, 5.387, 0.005, 2.76, 0.92, 4.21, 789);

echo "Текущий массив чисел: ".'<br/>';
var_dump($num);

function percent($z, $n){
	
$chng = $num;

	for ($i=0, $cnt = count($chng); $i<$cnt; $i++){
		
		if (is_float($chng[$i])) {
			if ($chng[$i] > 1.0){
				$chng[$i] = $chng[$i] * $z;
			}else{
				$chng[$i] = $chng[$i] * $n;
			}
		}
	}
	
	return $chng;
}



На входе функция percent принимает два параметра, которые пользователь вводит в форму. Оба параметра - это десятичные числа. Результат вызова этой функции помещается в ячейку 'res' массива $_SESSION и выводится пользователю. Подскажите, пожалуйста, что я делаю не так. Заранее благодарен.
...
Рейтинг: 0 / 0
31.03.2014, 16:57
    #38601126
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
$chng = $num;
...
Рейтинг: 0 / 0
31.03.2014, 17:00
    #38601131
Антон Щёлкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
ScareCrow$chng = $num;

Ошибка в копировании одного массива в другой?
...
Рейтинг: 0 / 0
31.03.2014, 17:01
    #38601133
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
Антон ЩёлкинScareCrow$chng = $num;

Ошибка в копировании одного массива в другой?

ага.
...
Рейтинг: 0 / 0
31.03.2014, 17:03
    #38601134
Антон Щёлкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
Тогда как мне корректно скопировать значения одного массива в другой?
...
Рейтинг: 0 / 0
31.03.2014, 17:18
    #38601148
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function percent($z, $n){

	for ($i=0, $cnt = count($num); $i<$cnt; $i++){
		
		if (is_float($num[$i])) {
			if ($num[$i] > 1.0){
				$chng[$i] = $num[$i] * $z;
			}else{
				$chng[$i] = $num[$i] * $n;
			}
		}
	}
	
	return $chng;
}
...
Рейтинг: 0 / 0
31.03.2014, 17:20
    #38601152
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
Код: php
1.
2.
3.
4.
5.
6.
if (is_float($num[$i])) {
...
}
else {
$chng[$i] = $num[$i];
}


чтобы ничего не потерялось
...
Рейтинг: 0 / 0
31.03.2014, 17:26
    #38601163
Антон Щёлкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
SharuPoNemnogu
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function percent($z, $n){

	for ($i=0, $cnt = count($num); $i<$cnt; $i++){
		
		if (is_float($num[$i])) {
			if ($num[$i] > 1.0){
				$chng[$i] = $num[$i] * $z;
			}else{
				$chng[$i] = $num[$i] * $n;
			}
		}
	}
	
	return $chng;
}



SharuPoNemnogu
Код: php
1.
2.
3.
4.
5.
6.
if (is_float($num[$i])) {
...
}
else {
$chng[$i] = $num[$i];
}


чтобы ничего не потерялось

Спасибо большое за помощь! Буду исправлять.
...
Рейтинг: 0 / 0
31.03.2014, 17:33
    #38601176
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
SharuPoNemnogu
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function percent($z, $n){

	for ($i=0, $cnt = count($num); $i<$cnt; $i++){
		
		if (is_float($num[$i])) {
			if ($num[$i] > 1.0){
				$chng[$i] = $num[$i] * $z;
			}else{
				$chng[$i] = $num[$i] * $n;
			}
		}
	}
	
	return $chng;
}



и чё, правда работает?
...
Рейтинг: 0 / 0
31.03.2014, 17:48
    #38601203
Антон Щёлкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
ScareCrowи чё, правда работает?

Неа, также не работает..
...
Рейтинг: 0 / 0
31.03.2014, 17:52
    #38601212
DarkMaster
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
Антон Щёлкин,

global $num?
...
Рейтинг: 0 / 0
31.03.2014, 17:54
    #38601217
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
или
Код: php
1.
function percent($z, $n, $num)
...
Рейтинг: 0 / 0
31.03.2014, 17:55
    #38601218
Антон Щёлкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
DarkMasterАнтон Щёлкин,

global $num?

Не помогло.
...
Рейтинг: 0 / 0
31.03.2014, 17:57
    #38601221
Антон Щёлкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
SharuPoNemnoguили
Код: php
1.
function percent($z, $n, $num)



Не совсем понимаю как тогда вызывать функцию
...
Рейтинг: 0 / 0
31.03.2014, 17:59
    #38601225
SharuPoNemnogu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
Антон Щёлкин,

Код: 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.
$num = array(4, 5.387, 0.005, 2.76, 0.92, 4.21, 789);
echo "Текущий массив чисел: ".'<br/>';
var_dump($num);

function percent($z, $n, $num){

    for ($i=0, $cnt = count($num); $i<$cnt; $i++){

        if (is_float($num[$i])) {
            if ($num[$i] > 1.0){
                $chng[$i] = $num[$i] * $z;
            }else{
                $chng[$i] = $num[$i] * $n;
            }
        }
        else {
            $chng[$i] = $num[$i];
        }
    }

    return $chng;
}

var_dump(percent(100, 200, $num));
...
Рейтинг: 0 / 0
31.03.2014, 18:02
    #38601228
Антон Щёлкин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Возврат одномерного массива из функции
SharuPoNemnoguАнтон Щёлкин,

Код: php
1.
var_dump(percent(100, 200, $num));



Тоже так подумал, но не успел реализовать, Вы меня опередили. Теперь все работает, спасибо.
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Возврат одномерного массива из функции / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]