2016-06-24 3 views
-4

배열 내부에 데이터베이스 데이터가 있습니다. 이제 각 페이지 요청을 3 가지 요소로 표시하려고합니다.각 요청마다 다른 데이터 표시

예 :

Data: array(1, 2, 3, 4, 5, 6, 7, 8, 9) 
First request: 1, 2, 3 
Second request: 4, 5, 6 
... 
+2

그런 다음 임의로 섞기를 원하지는 않지만 배열의 처음 세 요소를 슬라이스하여 끝에 추가하십시오. – Rizier123

+0

@ Rizier123, 답장을 보내 주셔서 감사합니다. 실제로 필요한 것이 무엇인지 설명하겠습니다. 나는 mysql 결과로부터 배열을 만들고 첫 페이지에서 처음 3 개의 결과를 표시하고있다. 사용자가 페이지를 새로 고치면 첫 번째 페이지에서 다음 3 개의 결과를 원합니다. – Sree

+0

그러면 질문을 다시 작성하고 싶을 것입니다. 그런 다음 세션 배열이나 여러 요청에 대해 이와 같은 결과를 추적해야합니다. – Rizier123

답변

0

마지막으로 해결책을 얻었으며 여기에 제 코드가 있습니다. 도움을 주신 모든 분들께 감사드립니다.

<?php 
       session_start(); 
       $array1=array(1,2,3,4,5,6,7,8,9); 
      $i=0; 
    if(isset($_SESSION["firstthreeids"])){ 
    $value=$_SESSION["firstthreeids"]; 
     $prevarray=explode(",",$value); 
     $displayids=array_diff($array1,$prevarray); 
    } 
    else{ 
     $displayids=$array1; 
    } 
foreach($displayids as $result){ 
    if($i==3){break;} 
    $check[]=$result; 
    $i++; 
} 
if(count($displayids)==3){ 
    unset($_SESSION['firstthreeids']); 
    session_destroy(); 
} 
else{ 
    if(isset($_SESSION["firstthreeids"])){ 
     $_SESSION["firstthreeids"]=implode(",",$check).",".$_SESSION["firstthreeids"]; 
} 
     else{  
      $_SESSION["firstthreeids"]=implode(",",$check); 
      } 
      } 

     print_r($displayids); 

?> 
0

두 PHP 함수 array_slice 및 array_merge 사용할 수 있습니다.

1 단계 배열의 처음 세 요소를 잘라냅니다.

단계 # 2 병합 나머지 3 개의 요소를 나머지 배열 요소와 병합합니다.

<?php 
function shuffle(arr){ 
    $first_three = array_slice(arr,0,3); 
    $remaining_array = array_slice(arr,3); 

    $new_array = array_merge($remaining_array,$first_three); 

    return $new_array; 
} 

$numbers_array = array(1,2,3,4,5,6,7,8,9); 

shuffle($numbers_array); 

?> 
+0

1)'shuffle()'은 이미 덮어 쓸 수없는 내장 함수입니다. 2) OP의 주석을보십시오 : http://stackoverflow.com/questions/38011677/shuffle-an-array-in-a-specific -format # comment63466636_38011677 – Rizier123

+0

수정 해 주셔서 감사합니다. –

+0

@Abdullah Malik : 안녕하세요. 도움에 감사드립니다. 하지만 항상 4,5,6을 반환합니다 : ( – Sree

관련 문제