php數組的遍歷
① php數組函數,遍歷數組的幾種方法
介紹三種。
//for、foreach、eachandlist
//for循環方式遍歷數組,僅可遍歷索引數組
$ary=['hello','world'];
for($key=0;$key<count($ary);$key++){
echo$key.$ary[$key];
}
//foreach專門用來遍歷數組的語言結構
foreach($aryAS$key=>$value){
echo$key.$value;
}
//each配合list循環遍歷
while(list($key,$value)=each($ary)){
echo$key.$value;
}
② PHP 怎麼樣遍歷
第一、foreach()
foreach()是一個用來遍歷數組中數據的最簡單有效的方法。
<?php
$urls= array('aaa','bbb','ccc','ddd');
foreach ($urls as $url){
echo "This Site url is $url! <br />";
}
?>
顯示結果:
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
第二、while() 和 list(),each()配合使用。
<?php
$urls= array('aaa','bbb','ccc','ddd');
while(list($key,$val)= each($urls)) {
echo "This Site url is $val.<br />";
}
?>
顯示結果:
?
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
第三、for()運用for遍歷數組
<?php
$urls= array('aaa','bbb','ccc','ddd');
for ($i= 0;$i< count($urls); $i++){
$str= $urls[$i];
echo "This Site url is $str.<br />";
}
?>
顯示結果:
This Site url is aaa
This Site url is bbb
This Site url is ccc
This Site url is ddd
這幾種遍歷數組的方法哪個更快捷些呢,下面做個簡單的測試就明白了
=========== 下面來測試三種遍歷數組的速度 ===========
一般情況下,遍歷一個數組有三種方法,for、while、foreach。其中最簡單方便的是foreach。下面先讓我們來測試一下共同遍歷一個有50000個下標的一維數組所耗的時間。
<?php
$arr= array();
for($i= 0; $i< 50000; $i++){
$arr[]= $i*rand(1000,9999);
}
function GetRunTime()
{
list($usec,$sec)=explode(" ",microtime());
return ((float)$usec+(float)$sec);
}
######################################
$time_start= GetRunTime();
for($i= 0; $i< count($arr); $i++){
$str= $arr[$i];
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of for:'.round($time_used, 7).'(s)<br /><br />';
unset($str, $time_start, $time_end, $time_used);
######################################
$time_start= GetRunTime();
while(list($key, $val)= each($arr)){
$str= $val;
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of while:'.round($time_used, 7).'(s)<br /><br />';
unset($str, $key, $val, $time_start, $time_end, $time_used);
######################################
$time_start= GetRunTime();
foreach($arr as$key=> $val){
$str= $val;
}
$time_end= GetRunTime();
$time_used= $time_end- $time_start;
echo 'Used time of foreach:'.round($time_used, 7).'(s)<br /><br />';
?>
測試結果:
Used time of for:0.0228429(s)
Used time of while:0.0544658(s)
Used time of foreach:0.0085628(s)
結果表明,對於遍歷同樣一個數組,foreach速度最快,最慢的則是while。從原理上來看,foreach是對數組副本進行操作(通過拷貝數組),而while則通過移動數組內部指標進行操作,一般邏輯下認為,while應該比foreach快(因為foreach在開始執行的時候首先把數組復制進去,而while直接移動內部指標。),但結果剛剛相反。原因應該是,foreach是PHP內部實現,而while是通用的循環結構。所以,在通常應用中foreach簡單,而且效率高。在PHP5下,foreach還可以遍歷類的屬性。
希望能夠喜歡。
③ php 一維數組怎麼遍歷html
php遍歷數組的4種方法總結,它分分別是foreach循環、each函數、list函數、for循環,需要的朋友可以參考下
在php中可以用來遍歷數組的函數有很多,如有:for語句、list、each、foreach這四個函數,這也是在php中遍歷數組的幾個主要的函數,下面我來給大家介紹。
foreach遍歷數組
我們在運用數組時,常常要遍歷數組並獲得各個鍵或者元素值,php提供了一些專門遍歷數組的函數。這里先介紹foreach遍歷數組函數的用法。
結構形式:
復制代碼 代碼如下:
foreach ( array_expression as $value ) statement
/* array_expression是要遍歷的數組
as作用是將數組的值賦給$value
statement是後續語句
*/
實例1:
復制代碼 代碼如下:
'白色' ,
'black' => '黑色' ,
'red' => '紅色' ,
'green' => '綠色',
'yellow' => '黃色');
foreach( $color as $c) echo $c ."
";
?>
通過foreach不僅可以獲得元素的值也可以獲得鍵名,結構形式:
復制代碼 代碼如下:
foreach ( array_expression as $key => $value ) statement
將以上實例中第7行的代碼:
復制代碼 代碼如下:
foreach( $color as $c) echo $c ."<br>";
改為:
復制代碼 代碼如下:
foreach( $color as $key => $c) echo $key.$c ."<br>";
each遍歷數組
遍歷數組是php數組操作一個重要的環節,除了前面提到的foreach函數,這里再介紹一個遍歷數組的函數-each()。
用each()函數可以輸出當前指針位置的鍵名和對應的元素值。可以使用」0″或」key」來訪問鍵名(標識符),用」1″或」value」訪問標識符對應的值。
實例:
復制代碼 代碼如下:
<?php
$languages=array(1=-->"php",
5=>"html",
10=>"css");
$a=each($languages); /* 第一次遍歷數組 */
echo $a[0] ."t";
echo $a[1] ."<br>";
$a=each($languages); /* 第二次遍歷數組 */
echo $a[key] ."t";
echo $a[value];
?>
list遍歷數組
函數list可以在遍歷數組時一次賦給變數,通常和each()函數配合使用。用list()函數使訪問each()返回的鍵和值變得更加簡單了。
實例:
復制代碼 代碼如下:
<?php
$date=array(1=-->"Monday",
2=>"Tuesday",
3=>"Wednesday");
list($key,$value)=each($date); /* 遍歷函數 */
echo "$key $value" ."<br>"; /* 輸出第一個數組 */
$next=next($date); /* 指針後移 */
echo "$next";
?>
ps:list()函數剛好與array()函數相反,array()將一系列數據構造成數組,而list()則將數組拆分成數據。
for遍歷數組
除了php預定義的一些遍歷數組函數,我們還可以利用for語句的循環特性將數組遍歷輸出。下面給出例子:
復制代碼 代碼如下:
<?php
$a[]="張學友"; /* 定義數組 */
$a[]="劉德華";
$a[]="黎明";
$a[]="郭富城";
$s=count($a); /* 統計數組個數 */
for($i=0;$i<$s;$i++){ /* 遍歷數組 */
echo $a[$i] ."<br /-->"; /* 顯示數組 */
}
?>
④ PHP中遍歷數組元素的幾種方法
介紹三種。
// for、 foreach、 each and list // for 循環方式遍歷數組,僅可遍歷索引數組$ary = ['hello', 'world']; for ($key = 0; $key < count($ary); $key ++) { echo $key . $ary[$key];} // foreach 專門用來遍歷數組的語言結構foreach ($ary AS $key => $value) { echo $key . $value;} // each 配合 list 循環遍歷while (list($key, $value) = each($ary)) { echo $key . $value;}
⑤ PHP多維數組遍歷方法(2種實現方法)
本文實例講述了PHP多維數組遍歷方法。分享給大家供大家參考,具體如下:
方法一:
$a=array('fruits'=>array('a'=>'orange',
'b'=>'grape',c=>'apple'),
'numbers'=>array(1,2,3,4,5,6),
'holes'=>array('first',5=>'second','third')
);
foreach($a
as
$list=>$things){
if(is_array($things)){
foreach($things
as
$newlist=>$counter){
echo
"key:".$newlist."<br/>"."value:".$counter."<br/>";
}
}
}
方法二:
function
MulitarraytoSingle($array){
$temp=array();
if(is_array($array)){
foreach
($array
as
$key=>$value
)
{
if(is_array($value)){
MulitarraytoSingle($value);
}
else{
$temp[]=$value;
}
}
}
}
希望本文所述對大家PHP程序設計有所幫助。
⑥ 用php怎麼遍歷這個數組
這個是序列化數據,想遍歷需要反序列化成數組,用unserialize()函數
<?php
$data='a:5:{i:0;a:2:{s:3:"url";s:42:"/d/file/contents/2020/10/5f7a88a42954f.jpg";s:3:"alt";s:11:"shangwuriyu";}i:1;a:2:{s:3:"url";s:42:"/d/file/contents/2020/10/5f7a874cd662c.jpg";s:3:"alt";s:10:"gaokaoriyu";}i:2;a:2:{s:3:"url";s:42:"/d/file/contents/2020/10/5f7a8709531c2.jpg";s:3:"alt";s:10:"gaokaoriyu";}i:3;a:2:{s:3:"url";s:42:"/d/file/contents/2020/10/5f7a84c877d8f.jpg";s:3:"alt";s:6:"ryxqrm";}i:4;a:2:{s:3:"url";s:42:"/d/file/contents/2020/10/5f7a848b9348c.jpg";s:3:"alt";s:6:"ryxqrm";}}';
var_mp(unserialize($data));
?>
輸出如下
array (size=5)
0 =>
array (size=2)
'url' => string '/d/file/contents/2020/10/5f7a88a42954f.jpg' (length=42)
'alt' => string 'shangwuriyu' (length=11)
1 =>
array (size=2)
'url' => string '/d/file/contents/2020/10/5f7a874cd662c.jpg' (length=42)
'alt' => string 'gaokaoriyu' (length=10)
2 =>
array (size=2)
'url' => string '/d/file/contents/2020/10/5f7a8709531c2.jpg' (length=42)
'alt' => string 'gaokaoriyu' (length=10)
3 =>
array (size=2)
'url' => string '/d/file/contents/2020/10/5f7a84c877d8f.jpg' (length=42)
'alt' => string 'ryxqrm' (length=6)
4 =>
array (size=2)
'url' => string '/d/file/contents/2020/10/5f7a848b9348c.jpg' (length=42)
'alt' => string 'ryxqrm' (length=6)