Сортировка массива массива объектов в PHP значением ключа

Да, вы можете использовать другой экран в соответствии с локализацией, для этого на портале appstoreconnect выберите подготовку к отправке на левой панели, в разделе App Previews and Screenshots вы можете добавить другой экран для разных локализованных.

enter image description here

В локализованном разделе выберите предпочитаемый язык, теперь есть и опция Use English (U.S.) Display, снимите этот флажок, чтобы добавить скриншот локализованного языка.

5
задан 5 January 2009 в 23:28
поделиться

4 ответа

Используйте usort:

function cmp($a, $b) {
  if ($a->value == $b->value) {
    return 0;
  } else {
    return $a->value < $b->value ? 1 : -1; // reverse order
  }
}

usort($arr, 'cmp');
13
ответ дан 18 December 2019 в 07:32
поделиться
function cmp($a, $b) {
    return $b->value - $a->value;
}

$ary[0] = usort($ary[0], "cmp");

Для сортировки массива на основе чего-либо кроме простого значения или ключа, необходимо использовать usort функционируйте и предоставьте свое собственное сравнение. Функции сравнения должны быть определены таким образом что если $a прибывает прежде $b, положительное значение возвращено и отрицательное если $b прибывает прежде $a (или нуль, если они равны). Поскольку Вы выдерживаете сравнение на основе числовых значений, и Вы хотите обратный вид, самый простой способ сделать, это должно вычесть 'значение' $a от значения $b.

1
ответ дан 18 December 2019 в 07:32
поделиться

Я мог быть неправым, но я полагаю, что сделал что-то вроде этого, что использование сортирует () (или согласуйтесь ()). Это было в поисковой функции, где я должен был отсортировать двухмерную антенную решетку, заполненную индексами и метками времени.

Я не уверен, будет ли это работать в Вашем случае, и я сделал это давно. Возможно, это запустит Вас хотя, удача.

0
ответ дан 18 December 2019 в 07:32
поделиться

Способ сделать это - отделить массив значений от массива объектов и, таким образом, создать два массива. Затем вы можете использовать array_multisort для сортировки массива объектов в соответствии с другим массивом. Вот пример:

<?php
$array1 = $objectvalues
$array2 = array(ObjectWithNid1, ObjectWithNid2, ObjectWithNid3, ObjectWithNid4);
array_multisort($array1, $array2);
?>

Вы можете использовать foreach для однократного цикла массива и создания нового массива с соответствующим ключом [value]:

<?php
foreach( $arraywithobjects as $obj )
{
    $objectvalues[] = $obj->getValue();
}
?>

Это получит значение объекта и вставит его в другой массив, который вы можете использовать с помощью мультисортировки.

В конечном итоге ваш код будет выглядеть так:

<?php
foreach( $arraywithobjects as $obj )
{
    $objectvalues[] = $obj->getValue();
}
$array2 = array(ObjectWithNid1, ObjectWithNid2, ObjectWithNid3, ObjectWithNid4);
array_multisort($objectvalues, $array2);
?>

Первый массив в поле array_multisort должен быть массивом, который вы используете для сортировки второго массива.

Вы также можете добавить другой массив. метод сортировки для этого. Вы можете прочитать их здесь: текст ссылки

3
ответ дан 18 December 2019 в 07:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: