簡體   English   中英

PHP array_unique沒有索引

[英]PHP array_unique without index

我一直在嘗試找到與array_unique()類似的東西,或者從數組中刪除所有重復項。 但是在這種特殊情況下,我需要一個逗號分隔的數組作為結果,而不是一個鍵值對。 我想做的是,如果可以的話,請避免通過循環來運行它。

因此,如果有諸如array_unique()東西,或者可以在array_unique()數字索引之后將其應用於我的數組,那么我會全力以赴。

目前,我正在通過循環構建初始數組,此外觀在5到150,000個條目之間循環,其中一個特定條目可以具有大約1,000個可能的3點樣式版本號。 這就是我正在構建的數組。 所以我把很多重復的東西放進了數組

例:

$myarray = array();
foreach($obj as $prod)
{
   //cycling over the master loop adding all my other stuff and building it out..
   $myarray[] = $prod['version'];
}

這以我想要的格式給了我很大的數組

Array(
   "1.0.0",
   "1.0.1",
   "3.0.2220",
   "2.0.0",
   "2.0.1",
   "1.8.11",
   "3.0.2220",
   "3.0.2220",
   "2.0.0",
   "2.0.0",
   "2.0.0"
)

循環完成后,我會做。

$myarray = array_unique($myarray);

這給我留下了像這樣的數組

Array(
  [0] = "1.0.0",
  [1] = "1.0.1",
  [2] = "3.0.2220",
  [3] = "2.0.0",
  [4] = "2.0.1",
  [5] = "1.8.11",
)

最終結果是不希望的。

Array(
   "1.0.0",
   "1.0.1",
   "3.0.2220",
   "2.0.0",
   "2.0.1",
   "1.8.11",
)

然后我可以在其中進行排序以按最早的最新版本列出。

這個:

Array(
  [0] = "1.0.0",
  [1] = "1.0.1",
  [2] = "3.0.2220",
  [3] = "2.0.0",
  [4] = "2.0.1",
  [5] = "1.8.11",
)

和這個:

Array(
   "1.0.0",
   "1.0.1",
   "3.0.2220",
   "2.0.0",
   "2.0.1",
   "1.8.11",
)

同一件事,在PHP中,所有數組都有一個索引,在上一個示例中,只是不打印它們而已,但是它們在那里,並且如果您未明確指定索引,它們只是從零開始的順序整數,像第一個例子一樣。

在您的最后一個示例中,該示例顯然沒有索引,如果將其稱為$array則可以執行以下操作以打印其索引:

foreach ($array as $key => $value) {
   echo $key; //this will print the indexes of the array
}

您想要一個沒有鍵的數組嗎? 每個數組都有鍵。

暫無
暫無

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

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