簡體   English   中英

冒泡排序多維數組php

[英]bubble sort multidimensional array php

我必須對二維數組進行排序

   $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. 從中創建一個數組
  2. 使用標准冒泡排序
  3. 將它們分組為三個數組。

可能有人會對這個決定有用。 在這里,有必要根據每個元素中'COUNT'的值,按氣泡對元素進行排序。

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

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

更多示例和使用詳細說明: usort

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM