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:
- 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)
- 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á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 đó.