2014-06-20 2 views
0

여기에이 배열이 있습니다.연관 배열에서 선택된 항목 만 섞기

enter image description here

나는 각 개체 만 answerA, answerB, answerC 및 answerD 필드를 shuffly 싶습니다. 그래서 answerA가 answerB, answerC가 answerD 등일 수있는 배열로 돌아갑니다.

이 작업을 수행하는 간단한 방법은 무엇입니까? 사용

+0

개체를 어떻게 구성합니까? – blueygh2

+0

@ blueygh2 PHP 쿼리에서 가져온 것으로 json_encode를 사용하여 JSarray로 변환되었습니다. –

+0

PHP가 객체를 구성하는 방법을 수정할 수 있습니까? 그렇다면 각 "질문"개체에서 일련의 대답을 사용하는 것이 좋습니다. 그러면 자바 스크립트에서 답을 더 쉽게 뒤섞을 수 있습니다. – Cerbrus

답변

2

shuffleArrayhttps://stackoverflow.com/a/12646864/989121에서 :

ID: 22 
answers: [ 
    "first", "second answer", etc 
], 
category: ... 
etc 

직렬라는 이름의 변수는 항상 당신이 실제로 필요 지표입니다 : 간단한 옵션은 다음과 같은 개체를 구성하는 것입니다 말했다

myKeys = ['answerA','answerB','answerC','answerD'] 
    myValues = myKeys.map(function(k) { return myObject[k] }) 
    myValues = shuffleArray(myValues) 
    myKeys.forEach(function(k) { myObject[k] = myValues.shift() }) 

정렬.

+0

나는 여전히 위의 배열에서 함수가 어떻게 작동하는지 알지 못했다. answerA-D 만 섞어서 각 객체를 제외하고 배열을 유지하고 싶습니다. –

+0

@NicholasKyriakides : 완벽한 솔루션을 원한다면 배열을 자바 스크립트로 게시하거나 바이올린을 만드십시오. – georg

+0

글쎄, 함수는 위의 것과 정확히 똑같은 필드를 매개 변수로하여 배열을 가져오고, 섞인 답변 A-D로 배열을 반환합니다. 나는 기꺼이 JSFiddle을 게시 하겠지만, PHP를 통해 배열을 반환하므로, 그렇게하기가 다소 어려울 것입니다. –