Не могу понять как передать переменную в функцию

Kood-Good

Новичок
Не могу понять как передать переменную в функцию

вот такя функция для сортировки массива

PHP:
function cmp( $klon, $b )
{  $a=$klon[$ord]; $b=$b[$ord];
   if ($a == $b) return 0;
   return ($a < $b) ? -1: 1;
}

for ($str=0;$str<sizeof($klon);$str++){
uasort($klon, cmp);
;}
как правильно передать $ord в функцию?
 

zerkms

TDD infected
Команда форума
имхо только через глобальные переменные

ps: имя callback-функции пиши в кавычках
 

Фанат

oncle terrible
Команда форума
вообще-то, ему нужно этот орд вычислять на месте, а никуда не передавать
 

SiMM

Новичок
> имхо только через глобальные переменные
Есть способ позабавнее ;)
PHP:
function cmp($a, $b = NULL) {
  static $global;
  if ($b === NULL) { $global = $a; return; }
  ...
}
cmp($var);
uasort($arr,'cmp');
PS: это не для тредстартера, а просто чтобы развеять заблуждение ;)
 

Kood-Good

Новичок
вообще-то, ему нужно этот орд вычислять на месте, а никуда не передавать
$ord - это число, которое передается в скрипт и не вычисляется. означает столбец, по которому будет идти сортировка в таблице, ну не в том суть. просто число.
 

zerkms

TDD infected
Команда форума
SiMM
интересное решение ;)
воистину пхп забавный зверёк ;)
 

zerkms

TDD infected
Команда форума
Kood-Good
решение тебе уже дали

-~{}~ 19.03.06 22:56:

uasort($arr, create_function('$a, $b', "return (\$a['" . $ord . "'] > \$b['" . $ord . "']) ? 1 : -1;"));

так и со строковыми ключами будет работать
 
Сверху