Intereting Posts
Как отслеживать поиск пользователей с помощью файлов cookie PHP переупорядочивает массив имен месяцев Обновите таблицу с помощью jQuery / Ajax каждые 5 секунд. mysql SELECT LIKE должен соответствовать целым словам только для переменной PHP сжимает изображение с помощью Lossy / Lossless Помимо пробелов, что еще может вызывать ошибки «заголовки, уже отправленные» в PHP Не удалось подключиться к Google cloud SQL. Использование PHP SDK Google Как использовать Ajax в плагине WordPress? Кто-нибудь, у кого проблемы с диаграммами Google в XAMPP? Только переменные должны передаваться по ссылке … в строке 13 Fail Попытка извлечь 5 символов из столбца при добавлении записи mysql через php Yii разбиение на страницы с помощью ajax Найти самый старый файл в папке с помощью PHP Проблема Xdebug и Netbeans WooCommerce Бесплатная доставка – удалите исходное или измените текстовое имя при оформлении заказа и электронной почте

Утилизация PHP не сортируется

Это образец массива элементов для сортировки:

$items = array 0 => object(stdClass)[8] public 'id' => string '110' (length=3) public 'brand_id' => string '18' (length=2) array 0 => string ' OT-708' (length=7) public 'failed' => null public 'diff' => null 1 => object(stdClass)[9] public 'id' => string '161' (length=3) public 'brand_id' => string '18' (length=2) 

Итак, допустим, я хочу сортировать по brand_id . Это моя функция обратного вызова usort:

 function _compare($itemA, $itemB){ if ($itemA->brand_id == $itemB->brand_id) { return 0; } else{ return strcmp($itemA->brand_id, $itemB->brand_id); //just an example... } } 

И когда я делаю usort($items, '_compare'); var_dump($items); usort($items, '_compare'); var_dump($items); Ничего не произошло. Какие-нибудь подсказки об устранении неполадок?

–ОБНОВИТЬ–

Хорошо, я упростил проблему:

 function cmp($itemA, $itemB){ return -1; } if (usort($items, "cmp")) echo 'I just sorted!'; else echo 'Cant sort!'; 

Он всегда печатает « Cant sort! '

Наконец, я обнаружил источник этой ошибки. Проблема заключалась в том, что этот код находился внутри класса.

Если это ваш случай, то вы должны вызвать usort следующим образом:

 usort($items, array("MyClass", "compare_method")); 

Кроме того, если ваш класс находится в пространстве имен, вы должны указать полное пространство имен в usort.

 usort($items, array('Full\Namespace\WebPageInformation', 'compare_method')); 

Кроме того, вы можете установить статическую функцию внутри своего класса:

 static myfunction($a, $b){'yoursort'} 

и назовите его так:

 usort($items, "Class::myfunction");