介紹三種。
專注于為中小企業(yè)提供網(wǎng)站制作、網(wǎng)站建設服務,電腦端+手機端+微信端的三站合一,更高效的管理,為中小企業(yè)澠池免費做網(wǎng)站提供優(yōu)質(zhì)的服務。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動了數(shù)千家企業(yè)的穩(wěn)健成長,幫助中小企業(yè)通過網(wǎng)站建設實現(xiàn)規(guī)模擴充和轉(zhuǎn)變。
//?for、?foreach、?each?and?list
//?for?循環(huán)方式遍歷數(shù)組,僅可遍歷索引數(shù)組
$ary?=?['hello',?'world'];
for?($key?=?0;?$key??count($ary);?$key?++)?{
echo?$key?.?$ary[$key];
}
//?foreach?專門用來遍歷數(shù)組的語言結(jié)構(gòu)
foreach?($ary?AS?$key?=?$value)?{
echo?$key?.?$value;
}
//?each?配合?list?循環(huán)遍歷
while?(list($key,?$value)?=?each($ary))?{
echo?$key?.?$value;
}
今天有個朋友問我一個問題php遍歷數(shù)組的方法,告訴她了幾個。順便寫個文章總結(jié)下,如果總結(jié)不全還請朋友們指出
第一、foreach()
foreach()是一個用來遍歷數(shù)組中數(shù)據(jù)的最簡單有效的方法。
?php
$urls=
array('aaa','bbb','ccc','ddd');
foreach
($urls
as
$url){
echo
"This
Site
url
is
$url!
br
/";
}
?
顯示結(jié)果:
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
/";
}
?
顯示結(jié)果:
This
Site
url
is
aaa
This
Site
url
is
bbb
This
Site
url
is
ccc
This
Site
url
is
ddd
第三、for()運用for遍歷數(shù)組
?php
$urls=
array('aaa','bbb','ccc','ddd');
for
($i=
0;$i
count($urls);
$i++){
$str=
$urls[$i];
echo
"This
Site
url
is
$str.br
/";
}
?
顯示結(jié)果:
This
Site
url
is
aaa
This
Site
url
is
bbb
This
Site
url
is
ccc
This
Site
url
is
ddd
有時候有人也在問這幾種遍歷數(shù)組的方法哪個更快捷些呢,下面做個簡單的測試就明白了
===========
下面來測試三種遍歷數(shù)組的速度
===========
一般情況下,遍歷一個數(shù)組有三種方法,for、while、foreach。其中最簡單方便的是foreach。下面先讓我們來測試一下共同遍歷一個有50000個下標的一維數(shù)組所耗的時間。
?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
/';
?
測試結(jié)果:
Used
time
of
for:0.0228429(s)
Used
time
of
while:0.0544658(s)
Used
time
of
foreach:0.0085628(s)
經(jīng)過反復多次測試,結(jié)果表明,對于遍歷同樣一個數(shù)組,foreach速度最快,最慢的則是while。從原理上來看,foreach是對數(shù)組副本進行操作(通過拷貝數(shù)組),而while則通過移動數(shù)組內(nèi)部指標進行操作,一般邏輯下認為,while應該比foreach快(因為foreach在開始執(zhí)行的時候首先把數(shù)組復制進去,而while直接移動內(nèi)部指標。),但結(jié)果剛剛相反。原因應該是,foreach是PHP內(nèi)部實現(xiàn),而while是通用的循環(huán)結(jié)構(gòu)。所以,在通常應用中foreach簡單,而且效率高。在PHP5下,foreach還可以遍歷類的屬性。
以上所述就是本文的全部內(nèi)容了,希望大家能夠喜歡。
兩種方法
第一種是修改查詢語句,在查詢語句中去除重復項
select distinct 列名 from 表明????只適用于查詢單列數(shù)據(jù),網(wǎng)上的查詢多列的方法試過一些,都報錯
第二種方法是把查到的數(shù)據(jù)先讀進一個數(shù)組,然后使用array_unique()函數(shù)去除重復項,再使用foreach遍歷數(shù)組來拼湊下拉框選項
$arr=[];
while($row?=?mysql_fetch_array($result))?{
array_push($arr,$row[Keyword]);//讀進數(shù)組
}
$arr=array_unique($arr);//去除重復項
foreach?($arr?as?$key?=?$val)?{
echo?"option?value='$val'$val/option";//循環(huán),拼湊下拉框選項
}
希望能幫到你
sybase_connect
連上數(shù)據(jù)庫。
語法: int sybase_connect(string [servername], string [username], string [password]);
返回值: 整數(shù)
函數(shù)種類: 數(shù)據(jù)庫功能
本函數(shù)用來打開與 Sybase 數(shù)據(jù)庫的連接。參數(shù) servername 為欲連上的數(shù)據(jù)庫服務器名稱。參數(shù) username 及 password 可省略,分別為連接使用的帳號及密碼。使用本函數(shù)需注意早點關閉數(shù)據(jù)庫,以減少系統(tǒng)的負擔。連接成功則返回數(shù)據(jù)庫的連接代號,失敗返回 false 值。
在PHP中數(shù)組分為兩類:
數(shù)字索引數(shù)組和關聯(lián)數(shù)組。
其中數(shù)字索引數(shù)組和C語言中的數(shù)組一樣,下標是為0,1,2…
而關聯(lián)數(shù)組下標可能是任意類型,與其它語言中的hash,map等結(jié)構(gòu)相似。
下面介紹PHP中遍歷關聯(lián)數(shù)組的三種方法:
方法1:foreach
復制代碼
代碼如下:
?php
$sports
=
array(
'football'
=
'good',
'swimming'
=
'very
well',
'running'
=
'not
good');
foreach
($sports
as
$key
=
$value)
{
echo
$key.":
".$value."br
/";
?
輸出結(jié)果:
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
/";
?
?php
//聲明一個有5個值的數(shù)組,鍵默認為0-4.可不寫,值為1,2,3,4,5
$array = array([0]=1,[1]=2,[2]=3,[3]=4,[4]=5);
//第一種:
//foreach遍歷數(shù)組,$k為數(shù)組的鍵的值,$v為數(shù)組的值,變量名隨意。位置對應關系不會改變
foreach($array as $k=$v){
echo "數(shù)組的第一個至最后一個值的鍵為:".$k."值為:".$v."br/";
}
//第二種:
//foreach遍歷數(shù)組,$v為數(shù)組的值,變量名隨意。當只有一個as賦予變量$v時,默認是數(shù)組中的值,而不是鍵
foreach($array as $v){
echo "數(shù)組的第一個至最后一個值的值為:".$v."br/";
}