php 移除陣列重複元素的一點說明

2022-10-06 14:24:21 字數 1126 閱讀 2015

如:

複製** 代程式設計客棧碼如下:

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

$test_array_unique=array_unique($test_array);

print_r($test_array_unique);

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

$test_array_unique=array_unique($test_array);

print_r($test_array_unique);

但是至此,不要粗心,事還沒結束。細心的看你會發現經管重複的元素被移除了,但是剩下來這些元素的索引沒有變化,這樣的話如果用for迴圈呼叫這個陣列元素的時候就會發生錯誤了,因為for迴圈的時候是按照數字遞增,而且大多數人用的是程式設計客棧count($test_array_unique)來獲得陣列的大小,這樣就會造成一些元素被遺漏;

複製** **如下:

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

$test_array_unique=array_unique($tes程式設計客棧t_array);

for($i=0;$i

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

$test_array_unique=array_unique($test_array);

for($i=0;$i

這樣你不會看到元素6被輸出,因為6的索引是8,處理前的陣列和處理後的陣列索引沒有任何改變;

解決辦法:

當然,這裡解決辦法太多了,我介紹的只是一種我覺得比較簡單的方法,那就是函式array_values,array_value是返回陣列的值,跟索引沒有關係,這樣處理後會形成乙個新的陣列,嚴格按照數字遞增的索引,這樣再使用for迴圈輸出邊一切ok了!

複製** **如下:

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

$test_array_unique=array_values(array_unique($test_array));

for($i=0;$i

本文標題: php 移除陣列重複元素的一點說明

本文位址:

第11題 移除陣列中的重複元素

給定乙個公升序排列的陣列,去掉重複的數,並返回新的陣列的長度。例如 陣列a 你的函式應該返回長度2,新陣列為 要求 不能新開陣列分配額外的空間。即常數空間限制。輸入乙個整數n,以及其對應的陣列a n 輸出新陣列長度 樣例輸入 5 0 0 1 1 2 樣例輸出 3 這是一道變相的查詢問題,並不是給你乙...

python 計蒜客 移除陣列中的重複元素

給定乙個公升序排列的陣列,去掉重複的數,並輸出新的陣列的長度。例如 陣列 a a 你的程式應該輸出 22 即新陣列的長度,新陣列為 要求 不能新開陣列分配額外的空間,即常數空間限制。輸入格式 輸入乙個整數 n 1 leq n leq 1000 n 1 n 1000 接下來一行 nn 個整數 a i ...

計蒜客題目 移除陣列中的重複元素

給定乙個公升序排列的陣列,去掉重複的數,並輸出新的陣列的長度。例如 陣列 a 你的程式應該輸出 2 即新陣列的長度,新陣列為 要求 不能新開陣列分配額外的空間,即常數空間限制。輸入乙個整數 n 1 n 1000 接下來一行 n 個整數 a i a i 1000 a i 1000 表示陣列 a 中的每...