2016-09-16 4 views
0

Здравствуйте, я хочу разбивать на страницы массив с помощью цикла, но проблема в том, что мои ключи массива не похожи (1,2,3,4,5 ... и т. Д.),Как перемещаться по массиву неупорядоченных клавиш

for ($x=0; $x<$members_per_page; $x++) { 
     $position = (int) ($currentPage-1) * $members_per_page + $x; 

     $member = get_userdata($members[$position]); 
     blackfyre_clan_members_links($member,$post_meta_arr, $post_id, $isleader); 

     if ($position >= $last_key) break; 
    } 

и мое содержание массива:

  Array 
     (
      [4] => Array 
      (
      [boid] => 4 
      [cr_nickname] => 
     ) 
      [564] => Array 
      (
      [boid] => 564 
      [cr_nickname] => 
     ) 
     ) .... ETC 
+2

Использование Еогеасп а не для – rak007

ответ

0

Вы могли бы заставить ваш массив иметь последовательные ключи с помощью array_values, как показано ниже:

for ($x=0; $x<$members_per_page; $x++) { 
     $position = (int) ($currentPage-1) * $members_per_page + $x; 

     $member = get_userdata(array_values($members)[$position]); 
     blackfyre_clan_members_links($member,$post_meta_arr, $post_id, $isleader); 

     if ($position >= $last_key) break; 
    } 

Однако (возможно) лучший способ постраничной бы:

$offset = (int) ($currentPage-1) * $members_per_page; 
$slice = array_slice ($members, $offset, $members_per_page,true); 
array_walk($slice, function ($member) use ($post_meta, $post_id, $isleader) { 
    blackfyre_clan_members_links($member,$post_meta_arr, $post_id, $isleader); 
}); 
0

Просто используйте Еогеасп ($ членов как члена $) {} вместо для

Смежные вопросы