Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk melintasi tatasusunan yang sama dalam php

Bagaimana untuk melintasi tatasusunan yang sama dalam php

王林
王林asal
2023-05-07 13:35:07627semak imbas

Dalam PHP, melintasi tatasusunan ialah operasi yang sangat biasa. Kami biasanya mahu menggunakan kaedah ini untuk mencari elemen dalam tatasusunan, beroperasi pada tatasusunan atau mengeluarkan semua elemen dalam tatasusunan. Dalam sesetengah kes, kita perlu mencari elemen tersebut dengan nilai yang sama untuk melaksanakan beberapa operasi lain. Artikel ini akan meneroka secara terperinci cara melintasi tatasusunan yang sama dalam PHP.

Pertama, mari kita lihat dua kaedah merentasi tatasusunan dalam PHP:

  1. gelung foreach

Gelung foreach ialah kaedah yang paling biasa daripada merentasi tatasusunan dalam PHP, struktur sintaks asasnya adalah seperti berikut:

foreach (array_expression as $key => $value) {
  // code to be executed;
}
  • array_expression: tatasusunan yang akan dilalui
  • $key: kunci elemen semasa
  • $value: Nilai elemen semasa

Gelung foreach akan berulang melalui setiap elemen dalam tatasusunan secara bergilir-gilir, tetapkan kunci dan nilainya kepada $key dan $value, dan kemudian laksanakan kod yang sepadan.

Sebagai contoh mudah, kami mempunyai tatasusunan:

$arr = array(2, 4, 6, 8, 10);

Gunakan gelung foreach untuk melintasi tatasusunan ini dan keluarkan setiap elemen:

foreach ($arr as $value) {
  echo $value . "<br>";
}

Keluaran adalah seperti berikut:

2
4
6
8
10
  1. untuk gelung

Gelung for juga merupakan cara biasa untuk melintasi tatasusunan dalam PHP, sama seperti gelung for biasa. Struktur sintaks asas adalah seperti berikut:

for ($i = 0; $i < count($array); $i++) {
  // code to be executed;
}
  • $array: tatasusunan yang perlu dilalui
  • $i: indeks unsur semasa

for loop akan menggunakan Fungsi count() mengira bilangan elemen dalam tatasusunan, menyimpannya dalam pembolehubah $i, dan kemudian berulang melalui setiap elemen dalam tatasusunan.

Sebagai contoh mudah, kami mempunyai tatasusunan yang sama seperti di atas:

$arr = array(2, 4, 6, 8, 10);

Gunakan gelung for untuk melelaran melalui tatasusunan ini dan keluarkan setiap elemen:

for ($i = 0; $i < count($arr); $i++) {
  echo $arr[$i] . "<br>";
}

Keluarannya ialah seperti berikut:

2
4
6
8
10

Di atas adalah kaedah asas merentasi tatasusunan dalam PHP Di bawah ini kami akan memperkenalkan cara melintasi tatasusunan yang sama.

  1. Gunakan fungsi array_count_values()

array_count_values() fungsi boleh mencari elemen dengan nilai yang sama dalam tatasusunan. Struktur sintaks asasnya adalah seperti berikut:

array array_count_values ( array $array )
  • $array: Tatasusunan yang akan ditemui

Fungsi ini akan mengembalikan tatasusunan baharu, yang mengandungi setiap elemen dalam tatasusunan asal Bilangan kejadian unsur. Untuk memberikan contoh mudah, kami mempunyai tatasusunan:

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

Gunakan fungsi array_count_values() untuk mencari elemen yang sama di dalamnya:

$newArr = array_count_values($arr);
print_r($newArr);

Outputnya adalah seperti berikut:

Array
(
    [1] => 2
    [2] => 2
    [3] => 2
    [4] => 1
    [5] => 1
)

Seperti yang anda boleh lihat daripada output Out, tatasusunan baharu mengandungi bilangan kejadian setiap elemen dalam tatasusunan asal, yang mana elemen 1, 2 dan 3 muncul dua kali, dan elemen 4 dan 5 hanya muncul sekali.

  1. Menggunakan gelung foreach

Cara lain untuk mengulang elemen yang sama dalam tatasusunan ialah menggunakan gelung foreach. Idea khusus ialah menggunakan gelung foreach bersarang Setiap kali ia merentasi elemen tatasusunan, ia merentasi elemen di belakangnya dan membandingkan sama ada nilainya adalah sama. Sebagai contoh mudah, kami mempunyai tatasusunan:

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

Gunakan gelung foreach untuk melintasi tatasusunan ini dan cari elemen yang sama di dalamnya:

$sameArr = array();
foreach ($arr as $key1 => $value1) {
  foreach ($arr as $key2 => $value2) {
    if ($key1 < $key2 && $value1 == $value2) {
      $sameArr[] = $value1;
    }
  }
}
print_r($sameArr);

Outputnya adalah seperti berikut:

Array
(
    [0] => 2
    [1] => 3
    [2] => 1
)

Dari Seperti yang dapat dilihat daripada output, elemen 2, 3, dan 1 yang sama dalam tatasusunan asal ditemui. Malah, kaedah ini lebih menyusahkan dan lebih memakan masa apabila memproses tatasusunan besar Adalah disyorkan untuk menggunakan fungsi array_count_values().

Di atas ialah dua kaedah untuk merentasi tatasusunan yang sama dalam PHP. Saya harap ia akan membantu anda.

Atas ialah kandungan terperinci Bagaimana untuk melintasi tatasusunan yang sama dalam php. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn