У меня есть функция, которая сортирует данные в многомерном массиве, как показано ниже:
<?php
$data = array();
$data[] = array("name" => "James");
$data[] = array("name" => "andrew");
$data[] = array("name" => "Fred");
function cmp($a, $b)
{
return strcasecmp($a["name"], $b["name"]);
}
usort($data, "cmp");
var_dump($data);
?>
Когда я запускаю это, он работает как ожидалось, возвращая данные, упорядоченные по имени, по возрастанию. Однако мне нужно использовать это в классе.
<?php
class myClass
{
function getData()
{
// gets all data
$this -> changeOrder($data);
}
function changeOrder(&$data)
{
usort($data, "order_new");
}
function order_new($a, $b)
{
return strcasecmp($a["name"], $b["name"]);
}
}
?>
Когда я использую это, я получаю следующее предупреждение: Предупреждение: usort() ожидает, что параметр 2 будет действительным обратным вызовом, функция "order_new" не найдена или неверное имя функции.
Когда я помещаю функцию order_new в функцию changeOrder, она работает нормально, но у меня проблемы с Неустранимая ошибка: не удается переопределить order_new(), поэтому я не могу ее использовать. Любые предложения?