Hướng dẫn check same value in array php - kiểm tra cùng một giá trị trong mảng php

Tôi đang làm việc với một mảng một chiều trong PHP. Tôi muốn phát hiện sự hiện diện của các giá trị trùng lặp, sau đó đếm số lượng các giá trị trùng lặp và đưa ra kết quả. Ví dụ: đưa ra mảng sau:

$array = array('apple', 'orange', 'pear', 'banana', 'apple',
   'pear', 'kiwi', 'kiwi', 'kiwi');

Tôi muốn in:

apple (2)
orange
pear (2)
banana
kiwi (3)

Bất kỳ lời khuyên về cách tiếp cận vấn đề này?

Thanks.

Mike

Hướng dẫn check same value in array php - kiểm tra cùng một giá trị trong mảng php

Silentghost

294K64 Huy hiệu vàng301 Huy hiệu bạc291 Huy hiệu Đồng64 gold badges301 silver badges291 bronze badges

hỏi ngày 23 tháng 7 năm 2009 lúc 10:11Jul 23, 2009 at 10:11

Bạn có thể sử dụng chức năng Array_Count_Values

$array = array('apple', 'orange', 'pear', 'banana', 'apple',
'pear', 'kiwi', 'kiwi', 'kiwi');

print_r(array_count_values($array));

sẽ đầu ra

Array
(
   [apple] => 2
   [orange] => 1
   [pear] => 2
   etc...
)

Hướng dẫn check same value in array php - kiểm tra cùng một giá trị trong mảng php

Gagantous

3506 Huy hiệu vàng26 Huy hiệu bạc63 Huy hiệu Đồng6 gold badges26 silver badges63 bronze badges

Đã trả lời ngày 23 tháng 7 năm 2009 lúc 10:14Jul 23, 2009 at 10:14

SilfverstromsilfverstromSilfverstrom

Phù hiệu vàng 27.2k644 Huy hiệu bạc56 Huy hiệu đồng6 gold badges44 silver badges56 bronze badges

1

if(count(array_unique($array))

2

function array_not_unique( $a = array() )
{
  return array_diff_key( $a , array_unique( $a ) );
}

STH

Phim thương hiệu vàng 215k5050 gold badges273 silver badges363 bronze badges

Đã trả lời ngày 22 tháng 10 năm 2009 lúc 18:50Oct 22, 2009 at 18:50

3

Bạn có thể thử biến mảng đó thành một mảng kết hợp với các loại trái cây dưới dạng các phím và số lần xuất hiện là giá trị. Một chút dài dòng, nhưng có vẻ như:

$array = array('apple', 'orange', 'pear', 'banana', 'apple',
   'pear', 'kiwi', 'kiwi', 'kiwi');
$new_array = array();
foreach ($array as $key => $value) {
    if(isset($new_array[$value]))
        $new_array[$value] += 1;
    else
        $new_array[$value] = 1;
}
foreach ($new_array as $fruit => $n) {
    echo $fruit;
    if($n > 1)
        echo "($n)";
    echo "
"; }

Đã trả lời ngày 23 tháng 7 năm 2009 lúc 10:36Jul 23, 2009 at 10:36

Khăn quàng cổ SimonSimon Scarfe

9.1404 Huy hiệu vàng27 Huy hiệu bạc32 Huy hiệu Đồng4 gold badges27 silver badges32 bronze badges

1

Để loại bỏ sử dụng

apple (2)
orange
pear (2)
banana
kiwi (3)
6. Để phát hiện nếu có bất kỳ sử dụng
apple (2)
orange
pear (2)
banana
kiwi (3)
7 và so sánh với
apple (2)
orange
pear (2)
banana
kiwi (3)
8.

Hướng dẫn check same value in array php - kiểm tra cùng một giá trị trong mảng php

AKSU

5.1815 Huy hiệu vàng23 Huy hiệu bạc39 Huy hiệu Đồng5 gold badges23 silver badges39 bronze badges

Đã trả lời ngày 20 tháng 8 năm 2009 lúc 15:04Aug 20, 2009 at 15:04

Đưa chúng vào

apple (2)
orange
pear (2)
banana
kiwi (3)
9 (mã giả)

map[string -> int] $m
foreach($word in $array)
{
    if(!$m.contains($word))
        $m[$word] = 0;

    $m[$word] += 1;
}

Đã trả lời ngày 23 tháng 7 năm 2009 lúc 10:15Jul 23, 2009 at 10:15

Anton Gogolevanton GogolevAnton Gogolev

111K38 Huy hiệu vàng195 Huy hiệu bạc282 Huy hiệu Đồng38 gold badges195 silver badges282 bronze badges

Có lẽ một cái gì đó như thế này (mã chưa được kiểm tra nhưng nên cho bạn một ý tưởng)?

$new = array();

foreach ($array as $value)
{
    if (isset($new[$value]))
        $new[$value]++;
    else
        $new[$value] = 1;
}

Sau đó, bạn sẽ nhận được một mảng mới với các giá trị dưới dạng các khóa và giá trị của chúng là số lần chúng tồn tại trong mảng gốc.

Đã trả lời ngày 23 tháng 7 năm 2009 lúc 10:17Jul 23, 2009 at 10:17

1

Tôi không tìm thấy câu trả lời mà tôi đang tìm kiếm, vì vậy tôi đã viết chức năng này. Điều này sẽ tạo ra một mảng chỉ chứa các bản sao giữa hai mảng, nhưng không in số lần một yếu tố được nhân đôi, vì vậy nó không trả lời trực tiếp câu hỏi, nhưng tôi hy vọng nó sẽ giúp ai đó trong tình huống của tôi.

function findDuplicates($array1,$array2)
{
    $combined = array_merge($array1,$array2);
    $counted = array_count_values($combined);
    $dupes = [];
    $keys = array_keys($counted);
    foreach ($keys as $key)
    {   
        if ($counted[$key] > 1)
        {$dupes[] = $key;}
    }
    sort($dupes);
    return $dupes;
}
$array1 = [1,2,3,4,5];
$array2 = [4,5,6,7,8];
$dupes = findDuplicates($array1,$array2);
print_r($dupes);

Outputs:

apple (2)
orange
pear (2)
banana
kiwi (3)
0

Đã trả lời ngày 15 tháng 3 năm 2018 lúc 20:02Mar 15, 2018 at 20:02

Aswineaswineaswine

15911 huy hiệu đồng11 bronze badges

apple (2)
orange
pear (2)
banana
kiwi (3)
1

Tôi nghĩ rằng cách này ngắn hơn và sạch hơn.

Đã trả lời ngày 10 tháng 9 năm 2021 lúc 11:17Sep 10, 2021 at 11:17

Hướng dẫn check same value in array php - kiểm tra cùng một giá trị trong mảng php

apple (2)
orange
pear (2)
banana
kiwi (3)
2

Đã trả lời ngày 7 tháng 10 năm 2021 lúc 12:02Oct 7, 2021 at 12:02

Hàm này chỉ cung cấp cho bạn các giá trị dự phòng

apple (2)
orange
pear (2)
banana
kiwi (3)
3

Đã trả lời ngày 18 tháng 4 lúc 8:31Apr 18 at 8:31

Hướng dẫn check same value in array php - kiểm tra cùng một giá trị trong mảng php

SaifsaifSaif

291 Huy hiệu bạc5 Huy hiệu đồng1 silver badge5 bronze badges

apple (2)
orange
pear (2)
banana
kiwi (3)
4

Hướng dẫn check same value in array php - kiểm tra cùng một giá trị trong mảng php

Tunaki

128K45 Huy hiệu vàng322 Huy hiệu bạc406 Huy hiệu Đồng45 gold badges322 silver badges406 bronze badges

Đã trả lời ngày 16 tháng 4 năm 2016 lúc 18:47Apr 16, 2016 at 18:47

Hướng dẫn check same value in array php - kiểm tra cùng một giá trị trong mảng php

Một phương pháp đơn giản:

apple (2)
orange
pear (2)
banana
kiwi (3)
5

Hướng dẫn check same value in array php - kiểm tra cùng một giá trị trong mảng php

biruk1230

2.9034 Huy hiệu vàng15 Huy hiệu bạc29 Huy hiệu đồng4 gold badges15 silver badges29 bronze badges

Đã trả lời ngày 28 tháng 1 năm 2020 lúc 13:39Jan 28, 2020 at 13:39

1

Làm thế nào để bạn kiểm tra xem một mảng có cùng giá trị?

Để kiểm tra xem tất cả các giá trị trong một mảng có bằng nhau không: sử dụng phương thức mảng. Mọi () để lặp lại trên mảng. Hãy kiểm tra xem mỗi phần tử mảng bằng với phần đầu tiên.Use the Array. every() method to iterate over the array. Check if each array element is equal to the first one.

Làm thế nào để bạn kiểm tra xem tất cả các giá trị trong một mảng có giống nhau không?

PHP có toán tử mảng sẵn có (===) để kiểm tra giống nhau nhưng ở đây, thứ tự các phần tử mảng không quan trọng. to check the same but here the order of array elements is not important.

Làm thế nào để bạn tìm thấy các giá trị trùng lặp trong một mảng?

Algorithm..
Khai báo và khởi tạo một mảng ..
Các yếu tố trùng lặp có thể được tìm thấy bằng hai vòng.Vòng ngoài sẽ lặp qua mảng từ 0 đến chiều dài của mảng.Vòng lặp bên ngoài sẽ chọn một phần tử.....
Nếu tìm thấy một trận đấu có nghĩa là phần tử trùng lặp được tìm thấy, hãy hiển thị phần tử ..

Làm thế nào tôi có thể tìm thấy các giá trị phù hợp trong hai mảng PHP?

Hàm mảng_Intersect () so sánh các giá trị của hai mảng (hoặc nhiều hơn) và trả về các trận đấu.Hàm này so sánh các giá trị của hai hoặc nhiều mảng và trả về một mảng chứa các mục từ Array1 có trong Array2, Array3, v.v. compares the values of two (or more) arrays, and returns the matches. This function compares the values of two or more arrays, and return an array that contains the entries from array1 that are present in array2, array3, etc.