遍歷php
1. php中的數組遍歷的幾種方式
?php//使用for循環遍歷$arr2=array(array("張三","20","男"),array("李四","25","男"),array("王五","19","女"),array("趙六","25","女"));echo "<table border=2 bordercolor=red><tr><td>姓名</td><td>年齡</td& gt;<td>性別</td></tr>";for($i=0;$i<4;$i++){echo "<tr>";for($j=0;$j<3;$j++){ echo "<td>"; echo $arr2[$i][$j]; echo "</td>";}echo "</tr>";echo "";}echo "</table>";?>//使用foreach遍歷 <?php$arr = array('one'=>array('name'=>'張三','age'=>'23','sex'=>'男'), 'two'=>array('name'=>'李四','age'=>'43','sex'=>'女'), 'three'=>array('name'=>'王五','age'=>'32','sex'=>'男'), 'four'=>array('name'=>'趙六','age'=>'12','sex'=>'女'));foreach($arr as $k=>$val){ echo $val['name'].$val['age'].$val['sex']."";}echo "<p>";?><?php$arr = array('one'=>array('name'=>'張三','age'=>'23','sex'=>'男'), 'two'=>array('name'=>'李四','age'=>'43','sex'=>'女'), 'three'=>array('name'=>'王五','age'=>'32','sex'=>'男'), 'four'=>array('name'=>'趙六','age'=>'12','sex'=>'女'));foreach($arr as $key=>$value){foreach($value as $key2=>$value2){ echo $value2;}echo "";}?>
2. php數組遍歷類與用法示例
本文實例講述了php數組遍歷類與用法。分享給大家供大家參考,具體如下:
<?php
class
scanArray{
public
$arr;
public
$where;
private
$str;
public
function
scan($arr,$where="array"){
$this->arr
=
$arr;
$this->where
=
$where;
foreach($this->arr
as
$k=>$v){
if(is_array($v)){
$this->where
=
($this->where)."[{$k}]";
$this->scan($v,$this->where);
}else{
$this->str
.=
$this->where."[{$k}]=".$v.'<br
/>';
}
}
return
$this->str;
}
function
__destruct(){
unset($this->arr);
unset($this->where);
}
}
$a
=
array('g'=>"a",'vv'=>array("b"=>"b","l"=>"c","xx"=>array("e","g")));
$ah
=
new
scanArray();
$b
=
$ah->scan($a);
echo
$b;
運行結果:
array[g]=a
array[vv][b]=b
array[vv][l]=c
array[vv][xx][0]=e
array[vv][xx][1]=g
更多關於PHP相關內容感興趣的讀者可查看本站專題:《PHP數組(Array)操作技巧大全》、《php排序演算法總結》、《PHP數據結構與演算法教程》、《php程序設計演算法總結》、《php字元串(string)用法總結》及《PHP常用遍歷演算法與技巧總結》
希望本文所述對大家PHP程序設計有所幫助。
您可能感興趣的文章:PHP遍歷數組的方法匯總PHP
數組遍歷方法大全(foreach,list,each)PHP
數組遍歷foreach語法結構及實例PHP中多維數組的foreach遍歷示例php實現遍歷多維數組的方法PHP中使用foreach()遍歷二維數組的簡單實例PHP遍歷數組的三種方法及效率對比分析PHP實現的操作數組類庫定義與用法示例PHP數組操作類實例PHP數組生成XML格式數據的封裝類實例
3. php怎麼遍歷字元串字元
<?php
$temp='abcdefg'; //要遍歷的字元串
$re=array(); //定義接受字元串的數組
for($i=0;$i<strlen($temp);$i++)
{
$re[]=substr($temp,$i,1); //將單個字元存到數組當中
echo $re[$i],',';
}
?>
4. 用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)
5. PHP 數組遍歷方法大全(foreach,list,each)
在PHP中數組分為兩類:
數字索引數組和關聯數組。
其中數字索引數組和C語言中的數組一樣,下標是為0,1,2…
而關聯數組下標可能是任意類型,與其它語言中的hash,map等結構相似。
下面介紹PHP中遍歷關聯數組的三種方法:
方法1:foreach
復制代碼
代碼如下:
<?php
$sports
=
array(
'football'
=>
'good',
'swimming'
=>
'very
well',
'running'
=>
'not
good');
foreach
($sports
as
$key
=>
$value)
{
echo
$key.":
".$value."<br
/>";
?>
輸出結果:
football:
good
swimming:
very
well
running:
not
good
方法2:each
復制代碼
代碼如下:
<?php
$sports
=
array(
'football'
=>
'good',
'swimming'
=>
'very
well',
'running'
=>
'not
good');
while
($elem
=
each($sports))
{
echo
$elem['key'].":
".$elem['value']."<br
/>";
?>
方法3:list
&
each
復制代碼
代碼如下:
<?php
$sports
=
array(
'football'
=>
'good',
'swimming'
=>
'very
well',
'running'
=>
'not
good');
while
(list($key,
$value)
=
each($sports))
{
echo
$key.":
".$value."<br
/>";
?>
6. php怎樣遍歷數組
遍歷數組的方式有
foreach($data as $d){
//這里進行 $d 與 $mydata 比較 $d 是data中的一個元素
}
比較的方法給你個實例以供參考
$data=array(
1=>array(
'name'=>"name1",
'id'=>"id1"
),
2=>array(
'name'=>"name2",
'id'=>'id2'
),
3=>array(
'name3'=>"name1",
"id3"=>"id1"
)
);
$mydata=array(
'name'=>"name1",
'id'=>"id1"
);
//判斷方法1
echoin_array($mydata,$data)?"存在":"不存在";
//判斷方法2
foreach($dataas$d){
if(count(array_diff($mydata,$d))==0&&count(array_diff_key($mydata,$d))==0){
echo"存在";
}else{
echo"不存在";
}
}
唉~我真的不知道提問者怎麼想的。。
打了這么多字。也寫了實例。居然選了別人和我一樣的。
7. PHP遍歷數組的幾種方法
PHP中遍歷數組有三種常用的方法:
一、使用for語句循環遍歷數組;
二、使用foreach語句遍歷數組;
三、聯合使用list()、each()和while循環遍歷數組。
這三種方法中效率最高的是使用foreach語句遍歷數組。從PHP4開始就引入了foreach結構,是PHP中專門為遍歷數組而設計的語句,推薦大家使用。
希望回答對你有幫助,如果有疑問,請繼續追問
8. php中這樣的數組怎麼遍歷
這三種方法中效率最高的是使用foreach語句遍歷數組。從PHP4開始就引入了foreach結構,是PHP中專門為遍歷數組而設計的語句,推薦大家使用。先分別介紹這幾種方法PHP中遍歷數組有三種常用的方法:
一、使用for語句循環遍歷數組;
二、使用foreach語句遍歷數組;
三、聯合使用list()、each()和while循環遍歷數組。
這三種方法中效率最高的是使用foreach語句遍歷數組。從PHP4開始就引入了foreach結構,是PHP中專門為遍歷數組而設計的語句,推薦大家使用。先分別介紹這幾種方法。
一、使用for語句循環遍歷數組
值得大家注意的是使用for語句循環遍歷數組要求遍歷的數組必須是索引數組。PHP中不僅有關聯數組而且還有索引數組,所以PHP中很少用for語句循環遍歷數組。
實例代碼如下:
代碼如下:
<?php
$arr =
array('http://www.jb51.net','腳本之家','PHP教程');
$num = count($arr);
for($i=0;$i<$num;++$i){
echo $arr[$i].'<br />';
}
?>
注釋:上例代碼中我們先計算出數組$arr中元素的個數,然後才使用在for語句,這樣做很高效的。因為如果是for($i=0;$i<
count($arr);++$i)的話,每次循環都會計算數組$arr中元素的個數,而使用上面的方式可以減去這種開銷。使用++$i也是為了提高效率,前面有文章我們提到過,建議大家再看看。
上面代碼的輸出結果為:
http://www.jb51.net
腳本之家
PHP教程
二、使用foreach語句遍歷數組
使用foreach語句循環遍歷數組有二種方式,我們使用的最多的還是第一種方式。介紹如下:
第一種方式:
foreach(array_expression as $value){
//循環體
}
實例代碼:
代碼如下:
<?php
$arr =
array('http://www.jb51.net','腳本之家','PHP教程');
foreach($arr as $value){
echo $value.'<br />';
}
?>
每次循環中,當前元素的值被賦給變數$value,並且把數組內部的指針向後移動一步。所以下一次循環中會得到數組的下一個元素,直到數組的結尾才停止循環,結束數組的遍歷。
第二種方式:
foreach(array_expression as
$key=>$value){
//循環體
}
實例代碼:
代碼如下:
<?php
//定義數組
$arr =
array('http://www.jb51.net','腳本之家','PHP教程');
foreach($arr as $k=>$v){
echo $k."=>".$v."<br />";
}
?>
三、聯合使用list()、each()和while循環遍歷數組
each()函數需要傳遞一個數組作為一個參數,返回數組中當前元素的鍵/值對,並向後移動數組指針到下一個元素的位置。
list()函數,這不是一個真正的函數,是PHP的一個語言結構。list()用一步操作給一組變數進行賦值。
實例代碼:
代碼如下:
<?php
//定義循環的數組
$arr =
array('website'=>'http://www.jb51.net','webname'=>'腳本之家')
while(list($k,$v) = each($arr)){
echo $k.'=>'.$v.'<br />';
}
?> jb51.net
9. PHP遍歷並列印指定目錄下所有文件實例
這篇文章主要介紹了PHP遍歷並列印指定目錄下所有文件實例,需要的朋友可以參考下
代碼如下:
<?php
//功能:遍歷並列印指定目錄下所有文件
function
scan_dir($dir_name,$dir_flag=1)
{
static
$FILE_COUNT=1;
//記錄文件數目
初值為1
目錄名稱不記
$FILE_COUNT--;
//每調用一次scan_dir()函數自減1
@$dir_handle=opendir($dir_name);
//抑制錯誤信息顯示
便於自定義錯誤顯示
if(!$dir_handle)
die("目錄打開錯誤!");
while(false!==($filename=readdir($dir_handle)))
//文件名為‘0'時,readdir返回
FALSE,判斷返回值是否不全等
{
$flag=$dir_flag;
//古怪的
is_dir($filename)
!
$filename這個路徑必須能夠尋到!當$filename不存在或者不是目錄時返回false
if($filename!='.'&&$filename!='..')
{
$FILE_COUNT++;
//不記錄當前路徑和上一級路徑
while($flag>0&&--$flag)
//負數仍為真
echo
'
';
if(is_dir($dir_name.$filename))
//判斷
是否為一個目錄
{
echo
'<strong>'."<a
href=".$dir_name.$filename.">".$filename."</a></strong><br>";
scan_dir($dir_name.$filename.'/',$dir_flag+1);
//$dir_flag標志目錄樹層次
}
else
{
echo
"<a
href=".$dir_name.$filename.">".$filename."</a><br>";
}
}
}
closedir($dir_handle);
//關閉目錄句柄
echo
"文件總數:".$FILE_COUNT.'<br>';
}
scan_dir('D:wampwwwtestlamp61');
//指定的文件路徑
?>
10. 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還可以遍歷類的屬性。
希望能夠喜歡。