Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menentukan sama ada terdapat nilai dalam tatasusunan dua dimensi dalam php

Bagaimana untuk menentukan sama ada terdapat nilai dalam tatasusunan dua dimensi dalam php

PHPz
PHPzasal
2023-04-26 09:10:11819semak imbas

PHP ialah bahasa skrip sebelah pelayan yang popular yang digunakan secara meluas dalam pembangunan tapak web. Memandangkan teknologi terus berkembang, kita selalunya perlu menilai, bertanya dan mengendalikan data semasa proses pembangunan, dan operasi pada tatasusunan dua dimensi amat kerap. Artikel ini akan menggunakan PHP untuk memperkenalkan cara untuk menentukan sama ada nilai wujud dalam tatasusunan dua dimensi.

  1. Apakah tatasusunan dua dimensi?

Tatasusunan dua dimensi merujuk kepada tatasusunan yang mengandungi berbilang tatasusunan dan setiap tatasusunan mengandungi berbilang elemen. Contohnya:

$array = array(
  array("apple", "orange", "banana"),
  array("grape", "kiwi", "berry"),
  array("watermelon", "pineapple", "mango")
);

Dalam tatasusunan ini, kita boleh mengakses setiap elemen dengan cara berikut:

echo $array[0][0]; //输出apple
echo $array[1][2]; //输出berry
echo $array[2][1]; //输出pineapple
  1. Tentukan sama ada unsur yang dinyatakan wujud dalam tatasusunan dua dimensi

Dalam PHP, anda boleh menggunakan fungsi in_array() untuk menentukan sama ada unsur wujud dalam tatasusunan satu dimensi. Walau bagaimanapun, fungsi ini tidak boleh menentukan secara langsung sama ada unsur wujud dalam tatasusunan dua dimensi, kerana dalam tatasusunan dua dimensi, setiap elemen ialah tatasusunan. Oleh itu, kita perlu menggunakan gelung untuk merentasi berbilang tatasusunan dan menentukan sama ada setiap elemen sepadan satu demi satu.

Berikut ialah kod sampel yang menunjukkan cara untuk menentukan sama ada unsur wujud dalam tatasusunan dua dimensi:

function in_array_recursive($item, $array){
  foreach ($array as $val){
    if (is_array($val)){
      if (in_array_recursive($item, $val)){
        return true;
      }
    }else{
      if ($val == $item){
        return true;
      }
    }
  }
  return false;
}

$array = array(
  array("apple", "orange", "banana"),
  array("grape", "kiwi", "berry"),
  array("watermelon", "pineapple", "mango")
);

if (in_array_recursive("kiwi", $array)){
  echo "数组中存在该元素";
}else{
  echo "数组中不存在该元素";
}

Dalam contoh di atas, kami mentakrifkan objek bernama in_array_recursive( ) berfungsi untuk mencari tatasusunan secara rekursif. Memandangkan berbilang tatasusunan bersarang lapisan demi lapisan, anda perlu menggunakan fungsi is_array() untuk menentukan sama ada elemen semasa ialah tatasusunan. Jika elemen semasa ialah tatasusunan, operasi yang sama digunakan pada tatasusunan, jika tidak, kami terus membandingkan sama ada elemen itu sama dengan elemen sasaran.

  1. Tentukan sama ada pasangan nilai kunci yang ditentukan wujud dalam tatasusunan dua dimensi

Semasa proses pembangunan, selain menentukan sama ada unsur yang dinyatakan wujud, kami juga perlu menentukan sama ada kunci yang ditentukan wujud pasangan nilai. Untuk tatasusunan dua dimensi, setiap elemen ialah tatasusunan pasangan nilai kunci. Jika kita ingin mengetahui sama ada kunci wujud, kita boleh menggunakan fungsi array_key_exists(). Fungsi ini menyemak sama ada kunci yang ditentukan wujud dalam tatasusunan dan mengembalikan nilai Boolean.

Berikut ialah kod sampel yang menunjukkan cara untuk menentukan sama ada pasangan nilai kunci yang ditentukan wujud dalam tatasusunan dua dimensi:

function key_value_exists_recursive($key, $value, $array){
  foreach ($array as $val){
    if (is_array($val)){
      if (key_value_exists_recursive($key, $value, $val)){
        return true;
      }
    }else{
      if ($val == $value && array_key_exists($key, $array)){
        return true;
      }
    }
  }
  return false;
}

$array = array(
  array("name"=>"apple", "price"=>1.5),
  array("name"=>"grape", "price"=>2.0),
  array("name"=>"mango", "price"=>3.0)
);

if (key_value_exists_recursive("name", "grape", $array)){
  echo "数组中存在该键值对";
}else{
  echo "数组中不存在该键值对";
}

Dalam contoh di atas, kami mentakrifkan fail dinamakan fungsi key_value_exists_recursive() untuk mencari tatasusunan secara rekursif. Pertama, kami menggunakan fungsi is_array() untuk menentukan sama ada elemen semasa ialah tatasusunan. Jika elemen semasa ialah tatasusunan, operasi yang sama digunakan pada tatasusunan, jika tidak, kami akan membandingkan secara langsung sama ada nilai elemen itu sama dengan nilai sasaran dan menggunakan fungsi array_key_exists() untuk menentukan sama ada elemen itu wujud dalam pasangan nilai kunci yang ditentukan .

Ringkasan:

Dalam artikel ini, kami memperkenalkan cara untuk menentukan sama ada nilai wujud dalam tatasusunan dua dimensi. Untuk menentukan sama ada unsur wujud, kita boleh menggunakan carian rekursif untuk mencarinya. Untuk menentukan sama ada pasangan nilai kunci wujud, kita boleh menggunakan fungsi array_key_exists() untuk menyemak. Pendekatan ini berfungsi bukan sahaja untuk PHP, tetapi juga untuk bahasa pengaturcaraan lain. Dalam pembangunan sebenar, operasi sedemikian sering berlaku, dan kami memerlukan pemahaman dan kemahiran yang mendalam untuk meningkatkan kecekapan pengaturcaraan dan kualiti kod.

Atas ialah kandungan terperinci Bagaimana untuk menentukan sama ada terdapat nilai dalam tatasusunan dua dimensi 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