데이터베이스에서 단일 레코드를 가져 와서 해당 레코드를 배열에 저장 한 다음 해당 배열에서 임의의 값을 표시 할 수 있기를 원하며, 그 임의의 값은 레코드의 ID 필드이기 때문에 0 인덱스 위치가 될 수 없습니다.
두 개의 테이블이 있습니다. 하나는 questions
이고 다른 하나는 입니다 answers
. Questions
두 개의 필드가 ID
있으며 Question
. Answers
: 10 개 필드가 ID, ANS1, ANS2, ANS3, etc.
그래서 Answers
와 관련된 Questions
자신에 의해를 ID
.
기록을 얻으려면 다음을 사용합니다.
$json = array( );
mysql_select_db($database_localhost, $localhost);
$query_getSentence = "SELECT * FROM answers WHERE ID = 13";
$getSentence = mysql_query($query_getSentence, $localhost) or die(mysql_error());
while ( $row_getSentence = mysql_fetch_assoc($getSentence)) {
$json[] = $row_getSentence;
$totalRows_getSentence = mysql_num_rows($getSentence);
따라서을 사용 print_r($json)
하면 다음과 같이 표시됩니다.
Array (
[0] => Array (
[ID] => 13
[ANS1] => ducks
[ANS2] => chickens
[ANS3] => birds
[ANS4] => cats
[ANS5] => dogs
[ANS6] => elephants
[ANS7] => monkeys
[ANS8] => animals
[ANS9] => bees
)
)
이제 이것을 올바르게 이해하면 다음을 사용하여 배열에서 임의의 결과를 얻는다고 생각합니다.
echo $myArray[array_rand($myArray)];
그러나 $json
내가 방금 쓴 곳에 넣으면 작동하지 않습니다 $myArray
. 을 사용해야한다는 것을 알고 json_encode
있지만, 위 코드에 삽입하려는 방법이 아무리 많아도 여전히 아무것도하지 않습니다.
또한 첫 번째 인덱스 (ID 필드)를 건너 뛰기 위해 시도한 방법은 다음과 같습니다.
echo(array_slice($myArray,1,9));
그러면 모든 답변이 반환되고 ID는 제외됩니다. 그러나 다시 한 번,이 모든 것을 작업 코드로 결합하는 방법을 알 수 없습니다. 이 모든 것을 함께 사용하면 올바르게 작동합니까?
다음 shuffle
과 같이 배열에서 첫 번째 항목을 사용 하고 잡는 것은 어떻습니까?
shuffle($myArray)
echo $myArray[0];
그러나 솔직히 당신의 코드는 혼란 스럽습니다. 그렇다면 $json
JSON이 아닌 배열 의 출력은 무엇 입니까?
echo '<pre>';
print_r($json);
echo '</pre>';
편집 : 원본 포스터의 업데이트 된 질문으로 배열이 구조를 기반으로 다른 배열에 중첩 된 것처럼 보입니다.
Array (
[0] => Array (
[ID] => 13
[ANS1] => ducks
[ANS2] => chickens
[ANS3] => birds
[ANS4] => cats
[ANS5] => dogs
[ANS6] => elephants
[ANS7] => monkeys
[ANS8] => animals
[ANS9] => bees
)
)
좋아요, 당신이 이것을 할 것이라는 것을 알고 있습니다. $json
이 경우 배열 이라고 가정합니다 .
$new_array = array_slice($json[0],1,9);
$random_key = array_rand($new_array);
$final_value = $new_array[$key];
따라서 array_slice
에서 항목 1-9를 가져 $json[0]
와서 $new_array
. 그런 다음 array_rand()
에서 임의의 키 값을 가져 오는 데 사용 합니다 $new_array
. 이제 최종 값은 다음과 같이 설정 $final_value
과 함께 $new_array[$key]
.
키를 보존하려는 것이 분명하기 때문에 이전에 사용한 array_rand
대신 여기에서 사용하고 있습니다 shuffle
.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다