[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Изменение элементов массива
l@pteff
Здравствуйте, есть массив с числами и нужно применить коэффициент изменения массива к каждому его элементу. Делаю функцией array_walk()

5, 6.5, 10, 3.555, 400, 9.43
<br><br>
<form
action="php/script.php" method="post">
Коэффициент изменения чисел <input name="koeff" id="koeff"/><br>
<input
type="submit" value="Ok" />


script.php

function use_koeff($arr,$koeff) {
return $arr*$koeff;
}

if (!$_POST['koeff']) exit ('Нет данных.');
if (!is_numeric($_POST['koeff'])) exit ('Введите число.');

$koeff=trim(htmlspecialchars(doubleval($_POST['koeff'])));

$arr=array(5, 6.5, 10, 3.555, 400, 9.43);
$arr1=array_walk($arr, 'use_koeff');
print_r($arr);

Но так выводится массив как есть, без изменений, видимо из-за того что в функцию use_koeff не передается параметр $_POST['koeff']. Подскажите пжл, как его туда передать?



Спустя 1 час, 8 минут, 26 секунд (10.09.2011 - 12:56) #8bit написал(а):
А так подойдет? Без использования array_walk


<?php

function
use_koeff($arr,$koeff)
{
if(is_array($arr))
{
for($i = 0; $i < count($arr); ++$i)
$arr1[] = $arr[$i] * $koeff;

return $arr1;
}

}


$arr1 = use_koeff($arr, $koeff);

print_r($arr1);


или ещё добавить

for($i = 0; $i < count($arr); ++$i)
{
$arr1[] = $arr[$i] * $koeff;
echo $arr[$i] .' * '. $koeff.'<br>';
}

тогда будет выводиться что надо

Спустя 49 минут, 22 секунды (10.09.2011 - 13:45) l@pteff написал(а):
Спасибо, работает.
Но хотелось бы узнать: ведь array_walk() вроде бы подходит к этому случаю, можно ли её применить здесь?

Спустя 1 час, 50 секунд (10.09.2011 - 14:46) #8bit написал(а):
функция array_walk() передает два параметра ключ и значение, а ключи в твоем массиве != $koeff. Я думаю вряд ли данная функция подойдет под твой случай
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.