HomeLập trìnhPhpLàm cách nào...

Làm cách nào tôi có thể xáo trộn nhiều dữ liệu JSON trong foreach? (PHP)


Có hai dữ liệu JSON. Tôi muốn đảm bảo rằng các câu trả lời cho câu hỏi được viết ở dạng phức tạp. Nhưng tôi không làm được.

Tôi có thể nhận được một JSON duy nhất khi có thể, nhưng tôi gặp lỗi khi có nhiều hơn một JSON

câu hỏi: The total number of people in the world? // văn bản đơn khiếu nại

Tùy chọn:
{'opt1':'4 Billion','opt2':'5 Billion','opt3':'6 Billion','opt4':'7 Billion'} //JSON

Câu trả lời: {"0":"2","1":"3"} // câu trả lời coorect: 2. & 3. tùy chọn (nhiều)

Mã số

   $options = json_decode($quiz->options); 
   $answers = json_decode($quiz->answerOfQuestion, true);

   foreach ($options as $key => $firstvalue) {
		if (in_array(substr($key, -1), $answers)) {
        // correct options
            echo "<input type="checkbox" value="".substr($key, -1)."">";
        } else { 
        // wrong options
            echo "<input type="checkbox" value="".substr($key, -1)."">";
        }
    }

Tôi đã làm gì?

   $options = shuffle(json_decode($quiz->options)); 
   $answers = shuffle(json_decode($quiz->answerOfQuestion, true));

Lỗi:

Unknown error type: [8] Only variables should be passed by reference
Unknown error type: [2] shuffle() expects parameter 1 to be array, object given
Unknown error type: [8] Only variables should be passed by reference
Unknown error type: [2] Invalid argument supplied for foreach()

Làm thế nào tôi có thể làm cho shuffle viết ?


Tôi không hiểu mã, nhưng có 2 chú thích:

  1. nếu bạn giải mã một cái gì đó như "{...}“, bạn nhận được một Đối tượng, không phải là một Mảng.
    shuffle() được tạo cho các mảng ngẫu nhiên, không phải đối tượng, do đó, lỗi.
    Một mảng được mã hóa trông như thế này: “[...]
    Nếu bạn thêm một sự thật trong các tùy chọn của mình, nó có thể hoạt động: json_decode($quiz->options, true)
  2. bạn đang xáo trộn các tùy chọn VÀ câu trả lời.
    Vì vậy, họ có các đơn đặt hàng khác nhau! Tôi không chắc liệu đây có phải là dự định hay không.
Đọc thêm  Lỗi trình điều khiển PhpMyAdmin - Diễn đàn freeCodeCamp

Cám ơn sự quan tâm của bạn.

Lỗi này là kết quả của việc cố gắng chuyển giá trị theo tham chiếu. Vì các đối tượng trong PHP chỉ sử dụng các tham chiếu… Tôi khuyên bạn nên chỉ định $quiz->options vào một biến, sau đó truyền vào biến đó.



Zik.vn – Biên dịch & Biên soạn Lại

spot_img

Create a website from scratch

Just drag and drop elements in a page to get started with Newspaper Theme.

Buy Now ⟶

Bài viết liên quang

DMCA.com Protection Status