<?php
$item_list = array( "Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Anguilla", "Antigua & Barbuda", "Argentina", "Armenia", "Aruba", "Australia", "Austria", "Azerbaijan", "Bahamas", "Bahrain", "Bangladesh", "Barbados", "Belarus", "Belau (Palau)", "Belgium", "Belize", "Benin", "Bermuda", "Bhutan", "Bolivia", "Bosnia Herzegovina", "Botswana", "Brazil", "British Indian Ocean", "British Virgin Islands", "Brunei Darussalam", "Bulgaria", "Burkina Faso", "Burundi", "Cambodia", "Cameroon", "Canada", "Cape Verde", "Cayman Islands", "Central African Rep.", "Chad", "Chile", "China (PR)", "Christmas Island", "Cocos Island", "Colombia", "Comoros", "Congo", "Congo Dem. Rep.", "Costa Rica", "Cote d'Ivoire", "Croatia", "Cuba", "Cyprus", "Czech Republic", "Denmark", "Djibouti", "Dominica", "Dominican Republic", "East Timor", "Ecuador", "Egypt", "El Salvador", "Equatorial Guinea", "Eritrea", "Estonia", "Ethiopia", "Falkland Islands", "Faroe Islands", "Fiji", "Finland", "France", "French Guiana", "French Polynesia", "French Antarctic", "Gabon", "Gambia", "Georgia", "Germany", "Ghana", "Gibraltar", "Greece", "Greenland", "Grenada", "Guam", "Guatemala", "Guinea", "Guinea Bissau", "Guyana", "Haiti", "Honduras", "Hong Kong", "Hungary", "Iceland", "India", "Indonesia", "Iran", "Iraq", "Irish Republic", "Israel", "Italy", "Jamaica", "Japan", "Jordan", "Kazakhstan", "Kenya", "Kirghizstan/Kyrgyzstan", "Kiribati", "Korea (DPR)", "Korea (Republic of)", "Kuwait", "Laos", "Latvia", "Lebanon", "Lesotho", "Liberia", "Libya", "Liechtenstein", "Lithuania", "Luxembourg", "Macao", "Macedonia (FYR)", "Madagascar", "Malawi", "Malaysia", "Maldives", "Mali", "Malta", "Marshall Islands", "Mauritania", "Mauritius", "Mexico", "Micronesia", "Moldova", "Monaco", "Mongolia", "Montenegro", "Montserrat", "Morocco", "Mozambique", "Myanmar (Burma)", "Namibia", "Nauru Island", "Nepal", "Netherland Antilles", "Netherlands", "New Caledonia", "New Zealand", "Nicaragua", "Niger Republic", "Nigeria", "Norfolk Island", "Northern Mariana Isl", "Norway", "Oman", "Pakistan", "Panama", "Papua New Guinea", "Paraguay", "Peru", "Philippines", "Pitcairn Island", "Poland", "Portugal", "Puerto Rico", "Qatar", "Reunion", "Romania", "Russia", "Rwanda", "Samoa (American)", "San Marino", "Sao Tome & Principe", "Saudi Arabia", "Senegal", "Seychelles", "Sierra Leone", "Singapore", "Slovak Republic", "Slovenia", "Solomon Islands", "Somalia", "South Africa", "South Georgia", "Spain", "Sri Lanka", "St Kitts & Nevis", "St Helena", "St Lucia", "St Pierre & Miquelon", "St Vincent & Grenadines", "Sudan", "Suriname", "Swaziland", "Sweden", "Switzerland", "Syria", "Taiwan", "Tajikistan", "Tanzania", "Thailand", "Togo", "Tonga", "Trinidad & Tobago", "Tunisia", "Turkey", "Turkmenistan", "Turks & Caicos Islands", "Tuvalu", "Uganda", "Ukraine", "United Arab Emirates", "United Kingdom", "Uruguay", "USA", "Uzbekistan", "Vanuatu", "Vatican City State", "Venezuela", "Vietnam", "Virgin Islands (USA)", "Wallis & Futuna Islands", "Western Samoa", "Yemen", "Zambia", "Zimbabwe");
$minimum_items_per_page = 30;
$page_list = paginate_items($item_list, $minimum_items_per_page);
print_r($page_list);
//------------------------------------------------------------
function paginate_items($item_list, $minimum_items_per_page){
$item_count = count ($item_list); //[226]
$minimum_items_per_page; //[30]
$pages = ($item_count/$minimum_items_per_page); //[7]
$remainder = $item_count % $minimum_items_per_page; //[16]
$remPerPage = round($remainder/$pages); //[2]
$remain2 = ($remainder % $pages); //[2]
$limit = $minimum_items_per_page + $remPerPage; //[32]
$outcome = array();
$offset = 0;
for ($i = 1; $i < $pages; $i++) {
if($remain2 > 0) {
$limit += 1;
$remain2 -= 1;
}
/*for ($i2 = $offset; $i2 < $offset + $limit; $i2++) {
print($item_list[$i2]."<br>");
}*/
$outcome[] = array("offset" => ($offset), "limit" => ($limit));
$offset += $limit;
}
print_r($outcome);
}
?>
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 62) Position 1 = -2
filename: /in/5cEb1
function name: (null)
number of ops: 11
compiled vars: !0 = $item_list, !1 = $minimum_items_per_page, !2 = $page_list
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
2 0 E > ASSIGN !0, <array>
4 1 ASSIGN !1, 30
6 2 INIT_FCALL_BY_NAME 'paginate_items'
3 SEND_VAR_EX !0
4 SEND_VAR_EX !1
5 DO_FCALL 0 $5
6 ASSIGN !2, $5
8 7 INIT_FCALL 'print_r'
8 SEND_VAR !2
9 DO_ICALL
49 10 > RETURN 1
Function paginate_items:
Finding entry points
Branch analysis from position: 0
1 jumps found. (Code = 42) Position 1 = 31
Branch analysis from position: 31
2 jumps found. (Code = 44) Position 1 = 33, Position 2 = 21
Branch analysis from position: 33
1 jumps found. (Code = 62) Position 1 = -2
Branch analysis from position: 21
2 jumps found. (Code = 43) Position 1 = 23, Position 2 = 25
Branch analysis from position: 23
2 jumps found. (Code = 44) Position 1 = 33, Position 2 = 21
Branch analysis from position: 33
Branch analysis from position: 21
Branch analysis from position: 25
filename: /in/5cEb1
function name: paginate_items
number of ops: 37
compiled vars: !0 = $item_list, !1 = $minimum_items_per_page, !2 = $item_count, !3 = $pages, !4 = $remainder, !5 = $remPerPage, !6 = $remain2, !7 = $limit, !8 = $outcome, !9 = $offset, !10 = $i
line #* E I O op fetch ext return operands
-------------------------------------------------------------------------------------
12 0 E > RECV !0
1 RECV !1
13 2 COUNT ~11 !0
3 ASSIGN !2, ~11
15 4 DIV ~13 !2, !1
5 ASSIGN !3, ~13
16 6 MOD ~15 !2, !1
7 ASSIGN !4, ~15
17 8 INIT_FCALL 'round'
9 DIV ~17 !4, !3
10 SEND_VAL ~17
11 DO_ICALL $18
12 ASSIGN !5, $18
18 13 MOD ~20 !4, !3
14 ASSIGN !6, ~20
20 15 ADD ~22 !1, !5
16 ASSIGN !7, ~22
22 17 ASSIGN !8, <array>
23 18 ASSIGN !9, 0
25 19 ASSIGN !10, 1
20 > JMP ->31
27 21 > IS_SMALLER 0, !6
22 > JMPZ ~27, ->25
28 23 > ASSIGN_OP 1 !7, 1
29 24 ASSIGN_OP 2 !6, 1
39 25 > INIT_ARRAY ~31 !9, 'offset'
26 ADD_ARRAY_ELEMENT ~31 !7, 'limit'
27 ASSIGN_DIM !8
28 OP_DATA ~31
41 29 ASSIGN_OP 1 !9, !7
25 30 PRE_INC !10
31 > IS_SMALLER !10, !3
32 > JMPNZ ~34, ->21
44 33 > INIT_FCALL 'print_r'
34 SEND_VAR !8
35 DO_ICALL
46 36 > RETURN null
End of function paginate_items
Generated using Vulcan Logic Dumper, using php 8.0.0
preferences:
146.09 ms | 1400 KiB | 17 Q