Как настроить порядок массива для выбора

Я не PHP-разработчик (только Rails), но у меня есть задача в PHP-коде (thebuggenie-app), которая говорит мне, что мне нужно изменить порядок отображения параметров для выбора. Проблема может быть простой, но для меня это не так просто.

Что я видел в php проекте, у меня есть что-то вроде этого (после мини исследования):

<optgroup label="<?php echo __('Globally available roles'); ?>">
<?php foreach ($global_roles as $role): ?>
<option value="<?php echo $role->getId(); ?>">
<?php echo $role>getName(); ?></option>
<?php endforeach ;?>
</optgroup>

и (вероятно) global_roles — это массив, который будет повторяться. В Rails легко сделать индивидуальный заказ, но в этом случае я понятия не имею. Если вам нужна какая-либо информация, просто дайте мне знать.

в классе действий я нашел: $this->global_roles = TBGRole::getAll();

и этот перенаправить мой разум на:

/**
* Returns all project roles available
*
* @return array
*/
public static function getAll()
{
return TBGListTypesTable::getTable()->getAllByItemTypeAndItemdata(self::ROLE, null);
}

введите описание изображения здесь

На данный момент у меня есть разработчик в качестве первой опции (по умолчанию), и мне нужно иметь Tester в качестве 1-й опции (по умолчанию)

Каждое решение будет правильным для меня, если код будет работать 🙂

Обновление 1)

public function getAllByItemTypeAndItemdata($itemtype, $itemdata)
{
$this->_populateItemCache();
$items = (array_key_exists($itemtype, self::$_item_cache)) ? self::$_item_cache[$itemtype] : array();
foreach ($items as $id => $item)
{
if ($item->getItemdata() != $itemdata) unset($items[$id]);
}

return $items;
}

0

Решение

Вы можете использовать usort ().
Эта функция сортирует, используя вторую функцию, которую вы создаете и передаете параметру.
Пример:

<?php
function cmp($a, $b)
{
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}

$a = array(3, 2, 5, 6, 1);

usort($a, "cmp");

foreach ($a as $key => $value) {
echo "$chave: $valor\n";
}
?>
2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]