Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mencari jumlah beberapa elemen dalam tatasusunan dalam php

Bagaimana untuk mencari jumlah beberapa elemen dalam tatasusunan dalam php

PHPz
PHPzasal
2023-04-20 10:14:54588semak imbas

Baru-baru ini, saya menghadapi masalah semasa membangunkan tapak web. Saya perlu mendapatkan beberapa data daripada tatasusunan untuk paparan di laman web. Tatasusunan ini mengandungi banyak elemen, tetapi hanya sebahagian daripadanya yang saya perlukan. Selepas percubaan dan penyelidikan berterusan, saya akhirnya menemui penyelesaian, iaitu fungsi array_slice() dalam PHP. Dalam artikel ini, saya akan memperkenalkan kepada anda secara terperinci prinsip penggunaan dan pelaksanaan fungsi ini.

Pertama sekali, kita perlu memahami sintaks asas fungsi array_slice(). Sintaksnya adalah seperti berikut:

array array_slice ( array $array , int $offset [, int $length = NULL [, bool $preserve_keys = FALSE ]] )

Antaranya, $array ialah array yang ingin kita proses, $offset mewakili kedudukan permulaan data yang ingin kita peroleh, $length mewakili panjang data kami ingin mendapatkan, jika tidak dinyatakan Secara lalai, semua data dari $offset hingga akhir tatasusunan diperoleh, dan $preserve_keys menunjukkan sama ada untuk mengekalkan nama kunci elemen dalam tatasusunan asal. Nilai pulangan bagi fungsi ini ialah tatasusunan baharu yang mengandungi bahagian data yang ditentukan.

Seterusnya, mari kita lihat cara menggunakan fungsi ini. Katakan kita mempunyai tatasusunan $pelajar yang mengandungi banyak maklumat pelajar Setiap elemen mengandungi nama pelajar, nombor pelajar, jantina, umur dan maklumat lain Kita perlu mendapatkan nama dan nombor pelajar 10 pelajar pertama, kemudian kita Anda boleh menulis kod seperti ini:

$students = array(/*这里是很多个学生信息*/);
$part_students = array_slice($students, 0, 10); //获取前10个学生的数据
$name_id = array_map(function($s) { //通过array_map()函数,将每个学生的姓名和学号取出来
  return array(
    'name' => $s['name'],
    'id' => $s['id']
  );
}, $part_students);

//将数据在网站上进行展示
foreach($name_id as $info) {
  echo "姓名:".$info['name']." 学号:".$info['id']."<br/>";
}

Dengan kod di atas, kita boleh mendapatkan nama dan nombor pelajar 10 pelajar pertama daripada tatasusunan $students dan memaparkannya di tapak web. Kod di atas juga menggunakan fungsi array_map() Rakan yang tidak biasa dengannya boleh mencari dan mempelajarinya sendiri.

Selain mendapatkan sebahagian daripada tatasusunan, fungsi array_slice() juga boleh menggunakan nombor negatif untuk mewakili kedudukan mengira mundur dari penghujung tatasusunan. Sebagai contoh, jika kita ingin mendapatkan data 10 pelajar terakhir dalam tatasusunan, kita boleh menulis seperti ini:

$part_students = array_slice($students, -10);

Dengan cara ini, tatasusunan $part_students mengandungi data 10 pelajar terakhir dalam tatasusunan $pelajar.

Akhir sekali, mari kita terokai prinsip pelaksanaan fungsi array_slice(). Sebenarnya, pelaksanaan fungsi ini sangat mudah, terutamanya menggunakan fungsi array_chunk() dan array_merge() dalam PHP. Mengambil 10 elemen pertama tatasusunan sebagai contoh, pelaksanaan dalaman fungsi adalah kira-kira seperti berikut:

function array_slice($array, $offset, $length = NULL, $preserve_keys = FALSE) {
  $len = count($array);
  if($offset < 0) { //如果$offset是负数,就转化成从数组末尾倒数的位置
    $offset = $len + $offset;
  }
  if($length === NULL) { //如果$length没指定,就获取从$offset到数组末尾的所有数据
    $length = $len - $offset;
  }
  $chunk = array_chunk($array, $length, $preserve_keys); //将数组按指定长度分块
  $part = $chunk[0]; //获取第一块的数据
  if(!$preserve_keys) { //如果不保留键名,重新索引数组
    $part = array_values($part);
  }
  return $part;
}

Antaranya, fungsi array_chunk() membahagikan tatasusunan kepada beberapa blok mengikut yang ditentukan length, dan setiap blok ialah sub-array , dan array_merge() fungsi menggabungkan berbilang sub-array ke dalam array keseluruhan. Dengan menggabungkan kedua-dua fungsi ini, fungsi array_slice() boleh mencapai fungsi mendapatkan sebahagian daripada data daripada tatasusunan.

Dalam pembangunan sebenar, kita selalunya perlu mendapatkan sebahagian daripada data daripada sejumlah besar data untuk paparan Pada masa ini, fungsi array_slice() sangat mudah. Ia boleh memotong data yang ingin kami proses dengan cepat menjadi bahagian yang kami perlukan. Pada masa yang sama, kerana ia adalah fungsi terbina dalam PHP, kecekapan pelaksanaannya juga sangat tinggi.

Atas ialah kandungan terperinci Bagaimana untuk mencari jumlah beberapa elemen dalam tatasusunan 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