2016-06-24 2 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

Тогда вы не хотите перетасовывать его, а просто нарезайте первые 3 элемента из вашего массива и добавьте его в конец. – 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 Слияние Эти три элемента с остальными элементами массива.

<?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 -формат # comment63466636_38011677 – Rizier123

+0

Благодарим за исправление. –

+0

@ Abdullah A Malik: Привет, спасибо за помощь. но он всегда возвращает 4,5,6 :( – Sree