многомерный массив пузырьковой сортировки Stack Overflow

Я должен сортировать 2d массив

   $items = array(
array(15, 16, 8, 1),
array(2, 3, 4, 7),
array(9, 11, 19, 6,)
);

с муравьем пузыря, чтобы получить что-то вроде этого

  1,2,3,4
6,7,8,9
11,15,16,19

Я не могу найти нигде пузырьковую сортировку для нескольких массивов.
Вы можете мне помочь?

Я пробовал что-то вроде этого, но это не работает:

 $iterations = 0;
for ($i = 0; $i < count($array); $i++)
{
$iterations++;
$hasSwap = false;
for ($j = 0; $j < count($array) - 1 - $i; $j++)
{
$iterations++;
if ($array[$j] > $array[$j + 1])
{
$hasSwap = true;
swap($array, $j, $j + 1);
}
}

if (!$hasSwap)
{
break;
}
}
var_dump($iterations);
print_r($array);

1

Решение

Вы рассматриваете три массива как один. Так

  1. Создайте один массив из них
  2. Используйте стандартную пузырьковую сортировку
  3. Сгруппируйте их в три массива.
1

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

Вероятно, кому-то будет полезно это решение. Здесь необходимо было отсортировать элементы по пузырькам на основе значения 'COUNT' внутри каждого элемента.

$fruits
(
[0] => Array
(
[NAME] => Banana
1 => 7
)
[1] => Array
(
[NAME] => Orange
2 => 2
)
[2] => Array
(
[NAME] => Apple
3 => 24
)
)

usort($fruits, function($a, $b)
{
if($a['COUNT'] > $b['COUNT'])
{
return -1;
}
if($a['COUNT'] < $b['COUNT'])
{
return 1;
}
return 0;
});

Больше примеров и подробностей использования:
usort

0

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