배열 내부에 데이터베이스 데이터가 있습니다. 이제 각 페이지 요청을 3 가지 요소로 표시하려고합니다.각 요청마다 다른 데이터 표시
예 :
Data: array(1, 2, 3, 4, 5, 6, 7, 8, 9)
First request: 1, 2, 3
Second request: 4, 5, 6
...
배열 내부에 데이터베이스 데이터가 있습니다. 이제 각 페이지 요청을 3 가지 요소로 표시하려고합니다.각 요청마다 다른 데이터 표시
예 :
Data: array(1, 2, 3, 4, 5, 6, 7, 8, 9)
First request: 1, 2, 3
Second request: 4, 5, 6
...
마지막으로 해결책을 얻었으며 여기에 제 코드가 있습니다. 도움을 주신 모든 분들께 감사드립니다.
<?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);
?>
두 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);
?>
그런 다음 임의로 섞기를 원하지는 않지만 배열의 처음 세 요소를 슬라이스하여 끝에 추가하십시오. – Rizier123
@ Rizier123, 답장을 보내 주셔서 감사합니다. 실제로 필요한 것이 무엇인지 설명하겠습니다. 나는 mysql 결과로부터 배열을 만들고 첫 페이지에서 처음 3 개의 결과를 표시하고있다. 사용자가 페이지를 새로 고치면 첫 번째 페이지에서 다음 3 개의 결과를 원합니다. – Sree
그러면 질문을 다시 작성하고 싶을 것입니다. 그런 다음 세션 배열이나 여러 요청에 대해 이와 같은 결과를 추적해야합니다. – Rizier123