thinkphp implementation of array paging example_PHP tutorial
Paging is implemented under the thinkphp framework . The company's website is based on the Thinkphp framework. I have been hearing about thinkphp for a long time and finally had the opportunity to put it into practice. thinkphp is based on MVC architecture. MVC is familiar to any ITers, model-view-controller. It handles logic and data separately, eliminating a lot of tedious processes. In fact, the official information has introduced in detail how to paginate, portal: http://document.thinkphp.cn/manual_3_2.html#data_page
, but it does not apply when the data has been taken out from the DB. And when converting to an array, I have been exposed to PHP for a full 2 months, and I have been exposed to thinkphp for only 3 weeks. I spent a lot of time on official documents to get familiar with thinkphp. It can be regarded as a worker who sharpens his sword and chops firewood. Here the official documents are explained as a comparison:
(only the first method in the document is cited): Using the Page class and the limit method, the code is as follows:
$User = M('User'); // Instantiate User object
$count= $User->where('status=1')->count();// Query the total number of records that meet the requirements
$Page = new ThinkPage($count,25);//Instantiate the paging class and pass in the total number of records and the number of records displayed on each page (25)
$show = $Page->show();// Display output in paging
// Perform paging data query. Note that the parameters of the limit method must use the attributes of the Page class
$list = $User->where('status=1')->order('create_time')->limit($Page->firstRow.','.$Page->listRows )->select();
$this->assign('list',$list);//Assign data set
$this->assign('page',$show);// Assign paging output
$this->display(); // Output template
The basic idea is to first calculate the total number of records, and then divide the pages according to the set number of records displayed on each page. It can be easily implemented using the Page class encapsulated by Thinkphp. The focus of the implementation is on line 11. The limit method extracts data from the query data according to certain rules. But what should I do if the data has been taken out?
We used the function array_slice() that comes with PHP. The definition is here: http://www.php.net/manual/en/function.array-slice.php
In fact, it is the array version of the limit method. Well, now that the tool is found, implementation is easy. Directly upload the code:
public function nodeslist(){
$portal = new PortalApi;
$nodelist = $portal->getNodeLists($this->uid);
$count = count($nodelist['data']);
$p = new Page($count, 10);
$lists = array_slice($nodelist['data'], $p->firstRow,$p->listRows);
$page = $p->show();
$this->assign('page',$page);
$this->assign('nodes',$lists);
$this->display();
}
The code has been deleted, only the implementation details are retained.
The getNodeLists method in line 3 retrieves data from the database and assigns it to the array nodelist.
Line 5 count calculates the number of array elements.
Line 6 passes in parameters to the Page class.
The array_slice function on line 7 replaces the limit method. The principle is the same.
Line 9 uses the assign method to assign a value to the template. The definition is here: http://document.thinkphp.cn/manual_3_2.html#assign
The same goes for line 10.
The following is the code in the view:
{$page}
If this is the only way, the displayed effect is not friendly. Then find out the definition of Page class:
//Page display customization
private $config= array(
'header' => 'Total %TOTAL_ROW% records',
'prev' => 'Previous page',
'next' => 'Next page',
'first'=> 'First page',
'last' => '...%TOTAL_PAGE%',
'theme'=> '%FIRST% %UP_PAGE% %LINK_PAGE% %DOWN_PAGE% %END%',
Add spaces before and after the page number. Now you can see the effect:
It goes well with the background. Of course, you can set different effects according to your own situation.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

The method of using a foreach loop to remove duplicate elements from a PHP array is as follows: traverse the array, and if the element already exists and the current position is not the first occurrence, delete it. For example, if there are duplicate records in the database query results, you can use this method to remove them and obtain results without duplicate records.

Methods for deep copying arrays in PHP include: JSON encoding and decoding using json_decode and json_encode. Use array_map and clone to make deep copies of keys and values. Use serialize and unserialize for serialization and deserialization.

The performance comparison of PHP array key value flipping methods shows that the array_flip() function performs better than the for loop in large arrays (more than 1 million elements) and takes less time. The for loop method of manually flipping key values takes a relatively long time.

Multidimensional array sorting can be divided into single column sorting and nested sorting. Single column sorting can use the array_multisort() function to sort by columns; nested sorting requires a recursive function to traverse the array and sort it. Practical cases include sorting by product name and compound sorting by sales volume and price.

PHP's array_group_by function can group elements in an array based on keys or closure functions, returning an associative array where the key is the group name and the value is an array of elements belonging to the group.

The best practice for performing an array deep copy in PHP is to use json_decode(json_encode($arr)) to convert the array to a JSON string and then convert it back to an array. Use unserialize(serialize($arr)) to serialize the array to a string and then deserialize it to a new array. Use the RecursiveIteratorIterator to recursively traverse multidimensional arrays.

There are two most common ways to paginate PHP arrays: using the array_slice() function: calculate the number of elements to skip, and then extract the specified range of elements. Use built-in iterators: implement the Iterator interface, and the rewind(), key(), current(), next(), and valid() methods are used to traverse elements within the specified range.

PHP's array_group() function can be used to group an array by a specified key to find duplicate elements. This function works through the following steps: Use key_callback to specify the grouping key. Optionally use value_callback to determine grouping values. Count grouped elements and identify duplicates. Therefore, the array_group() function is very useful for finding and processing duplicate elements.
