Bagaimana cara mengocok array di php?

Fungsi shuffle PHP shuffle array di PHP. Artikel menggunakan fungsi ini untuk membuat game berbasis konsol minimalis, "The Quiz Game"

Array Objek di PHP Learning Path

  • Array Objek di PHP. Buat, Urutkan, Filter, Gabungkan, Cari, Dll
  • Buat Array Objek di PHP
  • Cara Menyortir Array Objek berdasarkan Properti di PHP
  • Cara mengocok array objek di PHP
  • Cara memfilter array objek berdasarkan nilai dalam PHP
  • Cara memfilter array objek dengan kunci di PHP

Perkenalan

Array PHP fleksibel dalam hal tipe data elemen. Array dapat memiliki tipe campuran, termasuk objek. Indeks elemen menunjukkan posisinya dalam array, di mana elemen paling kiri memiliki indeks nol. Satu hal keren adalah pengocokan acak dalam sebuah array. Pengacakan acak sangat penting jika Anda mencoba mengembangkan permainan peluang, misalnya, Poker

Artikel ini mencakup berbagai objek. Objek-objek ini adalah turunan dari Kuis kelas. Kelas mewakili pertanyaan kuis tipikal dengan banyak jawaban. Artikel ini menunjukkan cara mengocok array di PHP dan membuat program berbasis konsol yang menampilkan pertanyaan kuis acak. Jadi mari kita mulai tanpa basa-basi lagi

Kelas Kuis

Inilah kelas "Kuis". Array akan menyimpan instance dari kelas ini

class Quiz { private $questionText; private $answersArray; function __construct($questionText, $answersArray) { $this->questionText = $questionText; $this->answersArray = $answersArray; } function getQuestion() { return $this->questionText; } function getAnswersArray() { return $this->getAnswersArray; } function setQuestion($questionText) { $this->questionText = $questionText; } function setAnswersArray($answersArray) { $this->answersArray = $answersArray; } }

Objek Kuis

Berikut adalah beberapa contoh kelas "Kuis".

$question1 = new Quiz("What is the capital of USA?", [ ["Washington, D.C", "Correct"], ["California", "Incorrect"], ["Texas", "Incorrect"] ]); $question2 = new Quiz("Where is the Great Wall located?", [ ["Canada", "Incorrect"], ["China", "Correct"], ["India", "Incorrect"] ]); $question3 = new Quiz("Who was the first man on the moon?", [ ["Joseph Swan", "Incorrect"], ["Nicola Tesla", "Incorrect"], ["Neil Armstrong", "Correct"] ]); _

Setiap objek diinisialisasi dengan pertanyaan berbasis teks dan larik yang memiliki larik bersarang, masing-masing dengan jawaban dan status, "Benar" atau "Salah".  

Game Kuis – Acak susunan dalam PHP

Game kuis yang dibayangkan perlu memilih secara acak dari berbagai objek "Kuis". Untungnya, PHP menampilkan fungsi shuffle(). Jadi, mari kita lihat cara kerjanya

pengacakan PHP

shuffle(array &$array): bool_

Fungsi shuffle di PHP mengambil array dengan referensi, mengocok elemen pada tempatnya. Mari kita lihat contohnya

$arr = ["First", "Second", "Third", "Fourth", "Fifth"]; print_r($arr); /* OUTPUT BEFORE SHUFFLING Array ( [0] => First [1] => Second [2] => Third [3] => Fourth [4] => Fifth ) */

Inilah hasilnya setelah diacak

shuffle($arr); print_r($arr); /* OUTPUT AFTER SHUFFLING Array ( [0] => Fourth [1] => Third [2] => First [3] => Fifth [4] => Second ) */

Voila. Itulah cara mengocok array di PHP

Game Kuis – Acak susunan dalam PHP

Sekarang kita tahu cara mengocok array di PHP, mari kita buat "The Quiz Game".  

Fungsi pembantu

Gim ini membutuhkan beberapa fungsi untuk fungsi inti. Mari kita lihat ini

function randomize(&$quizArray) { //If array is exhausted return null. if(empty($quizArray)) return null; //Select a random index. $randomIndex = rand(0, count($quizArray) - 1); //Shuffle array. shuffle($quizArray); //Pick the question at random index. $question = array_splice($quizArray, $randomIndex, 1); return $question[0]; } _


Fungsi randomize() mengambil pertanyaan secara acak dan meneruskannya ke kontrol pusat

function displayQuestion($questionCount,$question) { echo 'Quesion#'.$questionCount.': '.$question->getQuestion().PHP_EOL; echo 'Option1. '.$question->getAnswersArray()[0][0].PHP_EOL; echo 'Option2. '.$question->getAnswersArray()[1][0].PHP_EOL; echo 'Option3. '.$question->getAnswersArray()[2][0].PHP_EOL; }

Sesuai dengan namanya, fungsi displayQuestion() memiliki logika untuk menampilkan pilihan soal dan jawaban

function verifyAnswer($question, $answer) { if(!in_array($answer, [1, 2, 3, -1])) { throw new Exception('Input not supported'); } if($answer == "-1") { return -1; } foreach($question->getAnswersArray() as $k => $v) { //If the user picks the right answer. if(($answer - 1)== intval($k) && $v[1] == "Correct") { return 1; } } return 0; } _

Fungsi verifikasiAnswer() memeriksa input pengguna dan bereaksi sesuai itu

Kode Utama

Berikut kode utama atau entry point dari “The Quiz Game”

//Array of Quiz Objects $quizQuestions = [$question1, $question2, $question3]; echo "Welcome to the Quiz Game".PHP_EOL.PHP_EOL; $name = readline("Please enter your name: "); $score = 0; $questionCount = 1; echo "Rules\n10 Points for a correct answer\n0 Points for an incorrect answer".PHP_EOL.PHP_EOL; $question = randomize($quizQuestions); while(isset($question)) { displayQuestion($questionCount + 1, $question); $answer = readline("Enter 1, 2, 3. Press -1 to quit: "); $status = verifyAnswer($question,$answer); //If the answer is correct if($status == 1) { $score += 10; $questionCount++; } elseif($status == 0) { $score -=5; $questionCount++; } elseif($status == -1) { break; } $question = randomize($quizQuestions); } //Show Result echo PHP_EOL.'SUMMARY'; echo $name.' attempted '.$questionCount.' questions'.PHP_EOL; echo $name.' scored '.$score.' out of '.$questionCount*10;

Keluaran

Berikut cuplikan run, mulai dari intro dan pertanyaan pertama

Kemudian kami memiliki lebih banyak pertanyaan

Akhirnya, inilah ringkasannya

Voila. Saya mendapat nilai 30 dari 30. Toh saya sudah tahu jawabannya sebelumnya 🙂 Nah, itulah game minimalis berbasis console yang menggunakan array shuffling di PHP. Masih banyak ruang untuk perbaikan, tentu saja. Namun, tujuannya di sini adalah untuk mendemonstrasikan skenario di mana pengocokan berguna

Kesimpulan

Artikel ini menunjukkan cara mengocok array di PHP. Ini termasuk informasi tentang fungsi shuffle PHP dan penggunaannya. Artikel ini menggunakan pengocokan array di “The Quiz Game”, sebuah game berbasis konsol minimalis. Pengocokan array sangat penting dalam skenario serupa, misalnya, memodelkan permainan Poker atau model probabilistik. Semoga Anda menikmati artikel ini dan juga "Permainan Kuis" yang super sederhana. Nantikan lebih lanjut di FuelingPHP

Ingin mempelajari lebih lanjut tentang PHP?

Kami memiliki banyak artikel menarik yang berhubungan dengan PHP. Anda dapat menjelajahi ini untuk mempelajari lebih lanjut tentang PHP

  • 3 cara paling sederhana untuk mengulang melalui peringkat array PHP
  • Cara mengonversi objek ke array secara rekursif di PHP
  • Perbedaan antara array_merge_recursive PHP vs array_replace_recursive
  • Cara mengulang melalui array multidimensi di PHP

Pos terkait

Cara mengocok larik multidimensi dalam PHP
Cara mengacak larik PHP sambil mempertahankan kunci yang sama
15+ Larik Objek Contoh Kode PHP. Tutorial 2023
Recursive Loop Multidimensional JSON Arrays in PHP. GeoJSON

  • ← Cara mengocok array multidimensi di PHP
  • Perbedaan antara array_merge_recursive PHP vs array_replace_recursive →

Tulis Kode Lebih Baik Lebih Cepat

Klik di sini untuk mendapatkan rahasia teratas 'Menjadi Rockstar PHP Dev dalam 7 Hari' kami dikirimkan ke kotak masuk Anda

mendaftar

Keajaiban Stefanus

Hai. Saya harap Anda menikmati artikel ini. Saya telah mengembangkan situs web dan perangkat lunak secara profesional selama lebih dari 20 tahun. Saya memulai FuelingPHP sebagai cara untuk memberikan kembali kepada komunitas sumber terbuka yang membantu saya dapat hidup dengan nyaman membangun hal-hal yang saya sukai

Bagaimana cara mengocok elemen array di PHP?

Fungsi shuffle() mengacak urutan elemen dalam array . Fungsi ini menetapkan kunci baru untuk elemen dalam larik. Kunci yang ada akan dihapus (Lihat Contoh di bawah).

Bagaimana saya bisa mengocok array?

Acak Larik menggunakan Kelas Acak . Kemudian, kami menggunakan kelas Random untuk menghasilkan nomor indeks acak. Kemudian tukar elemen indeks saat ini dengan elemen indeks yang dibuat secara acak. Di akhir perulangan for, kita akan memiliki array yang dikocok secara acak. iterate through the array elements in a for loop. Then, we use the Random class to generate a random index number. Then swap the current index element with the randomly generated index element. At the end of the for loop, we will have a randomly shuffled array.

Bagaimana cara mengubah urutan array di PHP?

PHP - Mengurutkan Fungsi Untuk Array .
sort() - mengurutkan array dalam urutan menaik
rsort() - mengurutkan array dalam urutan menurun
asort() - mengurutkan array asosiatif dalam urutan menaik, sesuai dengan nilainya
ksort() - mengurutkan array asosiatif dalam urutan menaik, sesuai dengan kuncinya

Bagaimana cara mengocok array multidimensi di PHP?

Acak array multidimensi secara rekursif . Array ( [0] => Array ( [0] => Array ( [0] => D [1] => C [2] => A [3] => B [4] => E ) ) [1 . )

Postingan terbaru

LIHAT SEMUA