当前位置:网站首页>Summary of three methods of PHP looping through arrays list (), each (), and while
Summary of three methods of PHP looping through arrays list (), each (), and while
2022-07-03 16:35:00 【Leaf drop traceless 123】
while (list($key, $value) = each($list)) {} The performance of writing is higher than foreach,
turn :http://www.jb51.net/article/57560.htm
①each() function
each() The function needs to pass an array as an argument , Returns the key of the current element in the array / It's worth it , And move the array pointer backward to the next element . key / Value pairs are returned with 4 A mixed array of associations and indexes of elements , The key names are 0、1、key and value. Where key name 0 and key The corresponding value is the same , Is the key name of the array element ,1 and value Contains the values of array elements . If the internal pointer goes past the end of the array , be each() return FALSE.each() The function is used as follows :
Copy code The code is as follows :
< ?php
$contact = array("ID" => 1," full name " => " Gao Mou "," company " => "A company "," Address " => " The Beijing municipal ",);
$id = each($contact); // Returns an array of $contact The key of the first element in / It's worth it , It's with 4 Array of elements
print_r($id); // The output array $id:Array([1]=>1,[value]=>1,[0]=>ID,[key]=>ID)
$name = each($contact); // Returns an array of $contact The key of the second element in / It's worth it , It's with 4 Array of elements
print_r($name); // Output Array([1]=> Gao Mou ,[value]=> Gao Mou ,[0]=> full name ,[key]=> full name )
$company = each($contact);
print_r($company); // Output Array([1]=>A company ,[value]=>A company ,[0]=> company ,[key]=> company )
$address = each($contact);
print_r($address); // Output Array([1]=> The Beijing municipal ,[value]=> The Beijing municipal ,[0]=> Address ,[key]=> Address )
$no = each($contact);
var_dump($no); // Output bool(false)
?>
②list() function
This is not really a function , It is PHP The structure of language .list() Assign values to a set of variables in one step , That is, assign the values in the array to some variables .list() Can only be used for arrays with numeric indexes and assume that the array index is from 0 Start . The syntax format is as follows :
Copy code The code is as follows :
list(mixed varname,mixed…) = array_expression
list() Statements are very different from other functions in use , Instead of receiving an array directly as a parameter . But through “=” Operator in the way of assignment , The value of each element in the array , Corresponding assignment list() Every parameter in the function .list() Function converts each parameter in it into a variable that can be used directly in the script . Use as follows :
Copy code The code is as follows :
< ?php
$info = array('coffee','brown','caffeine');
list($drink,$color,$power) = $info;
list($drink,,$power) = $info; // The value of the variable is the first and third value in the array
list( , ,$power) = $info; // The variable value is the value of the third element in the array
?>
Learn from the above example list() After the usage of the function , take each() Functions and list() Functions are used together . The code is as follows :
Copy code The code is as follows :
< ?php
$contact = array("ID" => 1," full name " => " Gao Mou "," company " => "A company "," Address " => " The Beijing municipal ",);
list($key,$value) = each($contact);
echo "$key => $value"; // Output variables $key and $value, In the middle “=>” Division
?>
③while loop Traversal array
Previously introduced each() and list() Use of statements , It's not difficult to understand if you use while Loop through the array . The syntax format used is as follows :
Copy code The code is as follows :
while(list($key,$value) = each(array_expression)){
The loop body
}
This union format traverses a given array_expression Array . stay while() Statement in each loop ,each() Statement sets the key of the current array element , Assign to list() The first parameter variable of the function $key. And the value in the current array element , Assign to list() The second parameter variable in the function $value, also each() After the statement is executed, the pointer inside the array will be moved back one step , So next time while() Statement loop , You will get the key of the next element in the array / It's worth it . Until the end of the array each() Statement returns FALSE,while() Statement stops the loop , End the traversal of the array .
Copy code The code is as follows :
< ?php
$contact = array(
"ID" => 1,
" full name " => " Gao Mou ",
" company " => "A company ",
" Address " => " The Beijing municipal ",
" Telephone " => "(010)98765432",
"EMAIL" => "[email protected]",
);
// With HTML List the information of each element in the array
echo '<dl> A contact information :';
while(list($key,$value) = each($contact)){
echo "<dd>$key : $value</dd>";
}
echo '</dl>';
?>
It can also be yo on Nested traversal of multidimensional arrays in the same way . although while The result of traversing the array and freach Same statement , But these two methods are different . In the use of while Statement after traversing the array ,each() Statement has pointed the internal pointer of the passed in array parameter to the end of the array . When used again while Statement when traversing the same array , The array pointer is already at the end of the array ,each() Statement returns directly FALSE,while Statement will not be executed in a loop . Only in while Call before execution of statement reset() function , Reassign the array pointer to the first element . and foreach Statement will automatically reset the pointer position of the array , When foreach At the beginning of execution , The pointer inside the array will automatically point to the first cell . This means that there is no need to foreach Loop prior call reset() function .
边栏推荐
- 【剑指 Offer】58 - I. 翻转单词顺序
- Mongodb installation and basic operation
- 疫情常态化大背景下,关于远程办公的思考|社区征文
- The mixlab editing team is recruiting teammates~~
- PyTorch 1.12发布,正式支持苹果M1芯片GPU加速,修复众多Bug
- Add color to the interface automation test framework and realize the enterprise wechat test report
- Mb10m-asemi rectifier bridge mb10m
- Cocos Creator 2.x 自动打包(构建 + 编译)
- Explore Cassandra's decentralized distributed architecture
- [solved] access denied for user 'root' @ 'localhost' (using password: yes)
猜你喜欢
Getting started with Message Oriented Middleware
【声明】关于检索SogK1997而找到诸多网页爬虫结果这件事
word 退格键删除不了选中文本,只能按delete
One article takes you to understand machine learning
Pytorch 1.12 was released, officially supporting Apple M1 chip GPU acceleration and repairing many bugs
探索Cassandra的去中心化分布式架构
【LeetCode】94. Middle order traversal of binary tree
Two sides of the evening: tell me about the bloom filter and cuckoo filter? Application scenario? I'm confused..
记一次jar包冲突解决过程
拼夕夕二面:说说布隆过滤器与布谷鸟过滤器?应用场景?我懵了。。
随机推荐
为抵制 7-Zip,列出 “三宗罪” ?网友:“第3个才是重点吧?”
How to set up SVN server on this machine
Cocos Creator 2. X automatic packaging (build + compile)
Threejs Part 2: vertex concept, geometry structure
Processing strategy of message queue message loss and repeated message sending
Chinese translation of Tagore's floating birds (1~10)
TCP拥塞控制详解 | 3. 设计空间
Initial test of scikit learn Library
关于视觉SLAM的最先进技术的调查-A survey of state-of-the-art on visual SLAM
于文文、胡夏等明星带你玩转派对 皮皮APP点燃你的夏日
Slam learning notes - build a complete gazebo multi machine simulation slam from scratch (4)
QT serial port UI design and solution to display Chinese garbled code
Client does not support authentication protocol requested by server; consider upgrading MySQL client
Page dynamics [2]keyframes
Eleven requirements for test management post
NFT new opportunity, multimedia NFT aggregation platform okaleido will be launched soon
【剑指 Offer 】57 - II. 和为s的连续正数序列
First knowledge of database
[combinatorics] summary of combinatorial identities (eleven combinatorial identities | proof methods of combinatorial identities | summation methods)*
There are several APIs of airtest and poco that are easy to use wrong in "super". See if you have encountered them