1. php-Array函數簡介-數組操作-php實例教程
count()計算數組中的元素數目或對象中的屬性個數。3current()返回數組中的當前元素。3each()返回數組中當前的鍵/值對並將數組指針向前移動一步。3end()將數組的內部指針指向最後一個元素。3extract()從數組中將變數導入到當前的符號表。3in_array()檢查數組中是否存在指定的值。4key()從關聯數組中取得鍵名。3krsort()對數組按照鍵名逆向排序。3ksort()對數組按照鍵名排序。3list()把數組中的值賦給一些變數。3natcasesort()用「自然排序」演算法對數組進行不區分大小寫字母的排序。4natsort()用「自然排序」演算法對數組排序。4next()將數組中的內部指針向前移動一位。3pos()current()
的別名。3prev()將數組的內部指針倒回一位。3range()建立一個包含指定范圍的元素的數組。3reset()將數組的內部指針指向第一個元素。3rsort()對數組逆向排序。3shuffle()把數組中的元素按隨機順序重新排列。3sizeof()count()
的別名。3sort()對數組排序。3uasort()使用用戶自定義的比較函數對數組中的值進行排序並保持索引關聯。3uksort()使用用戶自定義的比較函數對數組中的鍵名進行排序。3usort()使用用戶自定義的比較函數對數組中的值進行排序。3
2. PHP如何獲取數組里元素的個數實例
//count() 函數返回數組中元素的數目。//也可以使用sizeof()//多維數組加參數1如:count($cars,1)可以遞歸統計$cars=array("Volvo","BMW","Toyota");echo count($cars);
3. php下將多個數組合並成一個數組的方法與實例代碼
1.合並數組
array_merge()函數將數組合並到一起,返回一個聯合的數組。所得到的數組以第一個輸入數組參數開始,按後面數組參數出現的順序依次迫加。其形式為:
復制代碼
代碼如下:
array
array_merge
(array
array1
array2…,arrayN)
將一個或多個數組的單元合並起來,一個數組中的值附加在前一個數組的後面。返回作為結果的數組。
如果輸入的數組中有相同的字元串鍵名,則該鍵名後面的值將覆蓋前一個值。然而,如果數組包含數字鍵名,後面的值將不會覆蓋原來的值,而是附加到後面。
如果只給了一個數組並且該數組是數字索引的,則鍵名會以連續方式重新索引。
實例如下:
復制代碼
代碼如下:
$face
=
array("J","Q","K","A");
$numbered
=
array("2","3","4","5","6","7","8","9");
$cards
=
array_merge($face,
$numbered);
shuffle($cards);
print_r($cards);
這將返回如下所示的結果,運行代碼:
復制代碼
代碼如下:
Array
(
[0]
=>
A
[1]
=>
4
[2]
=>
9
[3]
=>
3
[4]
=>
K
[5]
=>
7
[6]
=>
5
[7]
=>
Q
[8]
=>
6
[9]
=>
8
[10]
=>
2
[11]
=>
J
)
2.遞歸追加數組
array_merge_recursive()函數與array_merge()相同,可以將兩個或多個數組合並在一起,形成一個聯合的數組.兩者之間的區別在於,當某個輸入數組中的某個鍵己經存在於結果數組中時該函數會採取不同的處理方式.array_merge()會覆蓋前面存在的鍵/值對,替換為當前輸入數組中的鍵/值對,而array_merge_recursive()將把兩個值合並在一起,形成一個新的數組,並以原有的鍵作為數組名。還有一個數組合並的形式,就是遞歸追加數組。其形式為:
view
sourceprint?array
array_merge_recursive(
array
key,array
values
)
示例如下:
復制代碼
代碼如下:
$class1
=
array("John"
=>
100,
"James"
=>
85);
$class2
=
array("Micky"
=>
78,
"John"
=>
45);
$classScores
=
array_merge_recursive($class1,
$class2);
print_r($classScores);
這將返回如下結果:
view
sourceprint?Array
(
[John]
=>
Array
(
[0]
=>
100
[1]
=>
45
)
[James]
=>
85
[Micky]
=>
78
)
3.連接兩個數組
array_combine()函數會得到一個新數組,它由一組提交的鍵和對應的值組成。其形式為:
view
sourceprint?array
array_merge(array
array1,array
array2[…,array
arrayN])
注意,兩個輸入數組必須大小相同,不能為空。示例如下:
復制代碼
代碼如下:
$abbreviations
=
array("AL","AK","AZ","AR");
$states
=
array("Alabama","Alaska","Arizona","Arkansas");
$stateMap
=
array_combine($abbreviations,$states);
print_r($stateMap);
這會返回:
復制代碼
代碼如下:
Array
(
[AL]
=>
Alabama
[AK]
=>
Alaska
[AZ]
=>
Arizona
[AR]
=>
Arkansas
)
4. php數組的例子
php 中的數組類型有非常多的用途,因此這里有一些例子展示數組的完整威力。
<?php// this$a = array( 'color' => 'red', 'taste' => 'sweet', 'shape' => 'round', 'name' => 'apple', 4 // key will be 0 );// is completely equivalent with$a['color'] = 'red';$a['taste'] = 'sweet';$a['shape'] = 'round';$a['name'] = 'apple';$a[] = 4; // key will be 0$b[] = 'a';$b[] = 'b';$b[] = 'c';// will result in the array array(0 => 'a' , 1 => 'b' , 2 => 'c'),// or simply array('a', 'b', 'c')?>
例子 11-6. 使用 array()
<?php// Array as (property-)map$map = array( 'version' => 4, 'OS' => 'Linux', 'lang' => 'english', 'short_tags' => true );// strictly numerical keys$array = array( 7, 8, 0, 156, -10 );// this is the same as array(0 => 7, 1 => 8, ...)$switching = array( 10, // key = 0 5 => 6, 3 => 7, 'a' => 4, 11, // key = 6 (maximum of integer-indices was 5) '8' => 2, // key = 8 (integer!) '02' => 77, // key = '02' 0 => 12 // the value 10 will be overwritten by 12 );// empty array$empty = array();?>例子 11-7. 集合
<?php$colors = array('red', 'blue', 'green', 'yellow');foreach ($colors as $color) { echo Do you like $color?/n;}?>上例將輸出: Do you like red?Do you like blue?Do you like green?Do you like yellow? 直接改變數組的值在 php 5 中可以通過引用傳遞來做到。之前的版本需要需要採取別的方法:
例子 11-8. 集合
<?php// php 5foreach ($colors as &$color) { $color = strtoupper($color);}unset($color); /* 確保下面對 $color 的覆蓋不會影響到前一個數組單元 */// 之前版本的方法foreach ($colors as $key => $color) { $colors[$key] = strtoupper($color);}print_r($colors);?>上例將輸出: Array( [0] => RED [1] => BLUE [2] => GREEN [3] => YELLOW) 本例產生一個基於一的數組。
例子 11-9. 基於一的數組
<?php$firstquarter = array(1 => 'January', 'February', 'March');print_r($firstquarter);?>上例將輸出: Array( [1] => 'January' [2] => 'February' [3] => 'March')*/?> 例子 11-10. 填充數組
<?php// fill an array with all items from a directory$handle = opendir('.');while (false !== ($file = readdir($handle))) { $files[] = $file;}closedir($handle);?>數組是有序的。也可以使用不同的排序函數來改變順序。更多信息參見數組函數。可以用 count() 函數來數出數組中元素的個數。
例子 11-11. 數組排序
<?phpsort($files);print_r($files);?>因為數組中的值可以為任意值,也可是另一個數組。這樣可以產生遞歸或多維數組。
例子 11-12. 遞歸和多維數組
<?php$fruits = array ( fruits => array ( a => orange, b => banana, c => apple ), numbers => array ( 1, 2, 3, 4, 5, 6 ), holes => array ( first, 5 => second, third ) );// Some examples to address values in the array aboveecho $fruits[holes][5]; // prints secondecho $fruits[fruits][a]; // prints orangeunset($fruits[holes][0]); // remove first// Create a new multi-dimensional array$juices[apple][green] = good;?>需要注意數組的賦值總是會涉及到值的拷貝。需要在復制數組時用引用符號(&)。
<?php$arr1 = array(2, 3);$arr2 = $arr1;$arr2[] = 4; // $arr2 is changed, // $arr1 is still array(2,3)$arr3 = &$arr1;$arr3[] = 4; // now $arr1 and $arr3 are the same?>
5. php array_slice 取出數組中的一段序列實例
php
array_slice
函數在數組中根據條件取出一段值,並返回。如果數組有字元串鍵,所返回的數組將保留鍵名。本文章通過實例向大家講解array_slice
函數的使用方法。
php
array_slice
—
從數組中取出一段
array_slice
函數基本語法:
array
array_slice
(
array
$array
,
int
$offset
[,
int
$length
=
NULL
[,
bool
$preserve_keys
=
false
]]
)
array_slice()
返回根據
offset
和
length
參數所指定的
array
數組中的一段序列。
參數介紹
參數
描述
array
必需。輸入的數組。
soffset
必需。數值。規定取出元素的開始位置。
0
=
第一個元素。
如果
offset
非負,則序列將從
array
中的此偏移量開始。如果
offset
為負,則序列將從
array
中距離末端這么遠的地方開始。
length
可選。數值。規定被返回數組的長度。
如果給出了
length
並且為正,則序列中將具有這么多的單元。如果給出了
length
並且為負,則序列將終止在距離數組末端這么遠的地方。如果省略,則序列將從
offset
開始一直到
array
的末端。
preserve_keys
可選。規定函數是保留鍵名還是重置鍵名。可能的值:
true
-
保留鍵名
false
-
默認。重置鍵名
默認會重新排序並重置數組的數字索引。你可以通過將
preserve_keys
設為
TRUE
來改變此行為。
返回值
返回其中一段。
實例:
<?php
$input
=
array("a",
"b",
"c",
"d",
"e");
$output
=
array_slice($input,
2);
print_r($output);echo
"<br/><br/>";
$output
=
array_slice($input,
-2,
1);
print_r($output);echo
"<br/><br/>";
$output
=
array_slice($input,
0,
3);
print_r($output);echo
"<br/><br/>";
print_r(array_slice($input,
2,
-1));echo
"<br/><br/>";
print_r(array_slice($input,
2,
-1,
true));
?>
結果:
";
$output
=
array_slice($input,
-2,
1);
print_r($output);echo
"
";
$output
=
array_slice($input,
0,
3);
print_r($output);echo
"
";
print_r(array_slice($input,
2,
-1));echo
"
";
print_r(array_slice($input,
2,
-1,
true));
?>
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!
6. php獲取數組長度的方法(有實例)
在php中獲取數組長度方法很簡單,php為我們提供了兩個函數可以計算一維數組長度,如count,sizeof都可以直接統計數組長度哦,下面我們來看幾個實例吧。
php如何獲取數組的長度,使用php函數count(),或是sizeof()
例如:
復制代碼
代碼如下:
$arr
=
Array('0','1','2','3','4');
echo
count($arr);
//
輸出
5
$arr
=
array('A','B','C');
echo
sizeof($arr);
//輸出3
sizeof()和count()具有同樣的用途,這兩個函數都可以返回數組元素個數.可以得到一個常規標量變數中的元素個數,如果傳遞給這個函數的數組是一個空數組,或者是一個沒有經過設定的變數,返回的數組元素個數就是0;
兩函數功能一樣,手冊上講,sizeof()是函數count()的別名。
那麼多維數組長度要怎麼統計呢?繼續看例子
比如你讀取的數組是一個二維數組:
復制代碼
代碼如下:
<?php
$arr=array(
0=>array('title'
=>
'新聞1',
'viewnum'
=>
123,
'content'
=>
'ZAQXSWedcrfv'),
1=>array('title'
=>
'新聞2',
'viewnum'
=>
99,
'content'
=>
'QWERTYUIOPZXCVBNM')
);
?>
如果你想統計數組$arr的長度,也就是說該二維數組只有兩條新聞,你想要的數字也是2,但是如果使用count($arr)不同版本的php,統計的結果是不一樣的;
後來在php手冊中發現,count函數還有第二個參數,解釋如下:
count函數有兩個參數:
0(或COUNT_NORMAL)為默認,不檢測多維數組(數組中的數組);
1(或COUNT_RECURSIVE)為檢測多維數組,
所以如果要判斷讀取的數組$arr是不是有新聞信息,就要這樣寫了:
復制代碼
代碼如下:
<?php
if(is_array($arr)
&&
count($arr,COUNT_NORMAL)>0
)
{
.....
}
else
{
.....
}
?>
你可以使用這樣的代碼來測試該函數:
復制代碼
代碼如下:
<?php
$arr=array(
0=>array('title'
=>
'新聞1',
'viewnum'
=>
123,
'content'
=>
'ZAQXSWedcrfv'),
1=>array('title'
=>
'新聞2',
'viewnum'
=>
99,
'content'
=>
'QWERTYUIOPZXCVBNM')
);
echo
'不統計多維數組:'.count($arr,0);//count($arr,COUNT_NORMAL)
echo
"<br/>";
echo
'統計多維數組:'.count($arr,1);//count($arr,COUNT_RECURSIVE)
?>
7. 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格式數據的封裝類實例
8. php中二維數組如何使用
PHP還是比較常用的,於是我研究了一下PHP二維數組,在這里拿出來和大家分享一下,希望對大家有用使用PHP從數組中取出一段值可使用PHP內置函數array_slice(),但這個函數只支持一維數組,具體使用可查看PHP手冊,array_slice函數並不支持二維數組,。首先了解一下array_slice函數:
arrayarray_slice(arrayarray,intoffset[,intlength[,boolpreserve_keys]])array_slice()
返回根據offset和length參數所指定的array數組中的一段序列。
實例:從一維數組中取出一段值
<?php$arrayarray=array('b','i','u','u','u');$result=array_slice($array,0,4);print_r($result);?>
實例從數組$array中取出四個值,起點數組下標0開始,結果如下:從一維數組取出一段值非常簡單,直接使有內置函數array_slice。PHP二維數組的取值同樣需要使用array_slice函數,實例二維數組數據如下:
$arrayarray=array();
$array[1]=array('1'=>'b1','2'=>'i1','3'=>'u1','4'=>'u1','5'=>'u1');
$array[2]=array('1'=>'b2','2'=>'i2','3'=>'u2','4'=>'u2','5'=>'u2');
$array[3]=array('1'=>'b3','2'=>'i3','3'=>'u3','4'=>'u3','5'=>'u3');
$array[4]=array('1'=>'b4','2'=>'i4','3'=>'u4','4'=>'u4','5'=>'u4');
$array[5]=array('1'=>'b5','2'=>'i5','3'=>'u5','4'=>'u5','5'=>'u5');
$array[6]=array('1'=>'b6','2'=>'i6','3'=>'u6','4'=>'u6','5'=>'u6');
$array[7]=array('1'=>'b7','2'=>'i7','3'=>'u7','4'=>'u7','5'=>'u7');
如上二維數組,如果需要取出其中某段,需要知道取段開始與結束在數組中的位置,考慮到應用的特殊性,只從第一個數組開始,在這個二維數組中取出需要的數組個數。方法如下:
functionarray_silice_func(array$array,$limit){$k=$count=0;$temp=array();foreach($arrayas$key=>$value){$countcount=count($value);if($count+$k>=$limit){$t=array_slice($value,0,$limit-$k);$temp[$key]=$t;break;}$temp[$key]=$value;$k+=$count;}return$temp;}
APC方法實現PHP上傳多個文件原理剖析
新手必看PHP上傳文件進度全面揭秘
經驗之談PHP數組函數總結
深入學習PHP數組函數使用方法
使用如下:print_r(array_silice_func($array,5))取出二維數組的5個值,結果如下:Array([1]=>Array([0]=>b1[1]=>i1[2]=>u1[3]=>u1[4]=>u1))依此類推,取出所需要的數組個數。由於PHP二維數組的使用局限性,這里沒有實現從二維數組某個下標開始,取出多少個數組個數的需求,不過這也是值得探討的地方。以上就關於如何使用PHP從二維數組中取出一段指定值,希望對大家有幫助。