3v4l.org

run code in 300+ PHP versions simultaneously
<?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