色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

PHP 數(shù)組入門教程小結(jié)

這么多的數(shù)組函數(shù)我們?cè)撛趺磳W(xué)習(xí)?其實(shí)我們只需要清楚,我們需要對(duì)數(shù)組做哪些操作,然后把這些操作歸類,心中就有了大概的印象,然后隨著你的實(shí)踐,這些函數(shù)你就很清楚了,在這里提醒大家的是手冊(cè)要常備!廢話不多說,數(shù)組函數(shù)一般歸為以下幾類(看到英文別怕哦):
Outputting arrays
Creating arrays
Testing for an array
Locating array elements
Traversing arrays
Determining array size and element uniqueness
Sorting arrays
Merging, slicing, splicing, and dissecting arrays


Outputting arrays
print_r()
不熟悉這個(gè)的我就不想多說了!最基本的函數(shù),當(dāng)然要輸出數(shù)組也可是使用循環(huán)結(jié)構(gòu)輸出,不過有這么方便的輸出函數(shù)干嗎不用呢!

Creating arrays
array()
這個(gè)函數(shù)我也不想說了,這其實(shí)只能算語言結(jié)構(gòu),大家在新建數(shù)組的時(shí)候都用到過,沒用過的我只能說,兄弟,我無語了!
list()
這個(gè)函數(shù)和上面提到的 array()一樣,只是個(gè)語言結(jié)構(gòu),它通過一步操作給一組變量賦值!
具體示例請(qǐng)查看手冊(cè)!
range();
array range ( mixed low, mixed high[, number step] )
建立一個(gè)包含指定范圍單元的數(shù)組
示例: $arr =range(0, 6);
相當(dāng)于 $arr =array(0, 1, 2, 3, 4, 5, 6);
一般數(shù)據(jù)按從低到高排列,如果 low> high,則從高到低排列;

Testing for an array
is_array();
測試變量是否array類型,是則返回true,不是則返回false,很基本,很實(shí)用的函數(shù)!

Adding and removing array elements
array_push()
int array_push ( array &target_array,mixed var [, mixed ...] )
將一個(gè)或多個(gè)單元從末尾添加至數(shù)組!返回新數(shù)組的單元總數(shù)!
示例:

復(fù)制php內(nèi)容到剪貼板
php代碼:
$states =array( ‘Ohio' , ‘New York' );
array_push ( $states , ‘California' , ‘Texas'
);
//output: array((‘Ohio',‘New York' , ‘California',‘Texas');

array_pop();
彈出并返回?cái)?shù)組的最后一個(gè)單元,并將數(shù)組長度減一。使用后會(huì)重置數(shù)組指針!
示例:

復(fù)制php內(nèi)容到剪貼板
php代碼:
$states =array( ‘Ohio' , ‘New York' );
$state = array_pop ( $states
);
//output: New York

array_shift();
與array_pop類似,只不過它移出和返回的是數(shù)組的第一個(gè)值。數(shù)字鍵名將重新從零開始記數(shù),文字鍵名則保持不變!

array_unshift();
與array_push類似,只不過是從數(shù)組頭部插入數(shù)據(jù)!數(shù)字鍵名將重新從零開始記數(shù),文字鍵名則保持不變!

array_pad();
array array_pad ( array input, intpad_size, mixed pad_value )
用值將數(shù)組填充到指定長度!
pad_size為正,則從右側(cè)開始填補(bǔ),為負(fù),從左側(cè)開始填補(bǔ),小與數(shù)組長度,則保持?jǐn)?shù)組不變!示例見手冊(cè)!

Locating array elements
in_array();
檢查數(shù)組中是否存在某個(gè)值,基礎(chǔ),不說了,具體見手冊(cè)!

array_keys();
array array_keys ( array input [,mixed search_value [, bool strict]] )
返回?cái)?shù)組中的所有鍵名。如果選定search_value,則返回選定的鍵名!自php 5]起,可以用strict參數(shù)來進(jìn)行全等比較( ===)。

array_key_exists();
bool array_key_exists ( mixed key,array search )
檢查給定的鍵名或索引是否存在于數(shù)組中,存在則返回true。一些更具體的應(yīng)用記得查看手冊(cè)!

array_values();
array array_values ( array input )
與array_keys()類似!返回的是數(shù)組的所有鍵值!

array_search();
mixed array_search ( mixed needle,array haystack [, bool strict] )
在 haystack中搜索 needle參數(shù)并在找到的情況下返回鍵名,否則返回 FALSE
如果needle是字符串,則比較區(qū)分大小寫!
如果strict是true,還得比較類型
如果needle在haystack中出現(xiàn)不止一次,則返回第一個(gè)匹配的鍵。要返回所有匹配值的鍵,應(yīng)該用array_keys()加上可選參數(shù)search_value來代替!


Traversing arrays

key();

mixed key ( array &array )
返回?cái)?shù)組中當(dāng)前單元的鍵名!

reset();
重置數(shù)組的指針。

each();
返回?cái)?shù)組中當(dāng)前單元的鍵 /值對(duì),并將指針下移一位!

current();
返回當(dāng)前被內(nèi)部指針指向的數(shù)組單元的值,并不移動(dòng)指針。如果超出了單元列表的末端,則返回 false

end();
array的內(nèi)部指針移動(dòng)到最后一個(gè)單元并返回其值。

next();
返回?cái)?shù)組內(nèi)部指針指向的下一個(gè)單元的值,或當(dāng)沒有更多單元時(shí)返回 FALSE

prev();
返回?cái)?shù)組內(nèi)部指針指向的前一個(gè)單元的值,或當(dāng)沒有更多單元時(shí)返回 FALSE

array_walk();
bool array_walk ( array &array,callback funcname [, mixed userdata] )
具體描述請(qǐng)參考手冊(cè)!
示例:

array_reverse();
array array_reverse ( array array [,bool preserve_keys] )
接受數(shù)組 array作為輸入并返回一個(gè)單元為相反順序的新數(shù)組,如果 preserve_keys TRUE 則保留原來的鍵名。
示例:

復(fù)制php內(nèi)容到剪貼板
php代碼:
$states =array( ‘Delaware' , ‘Pennsylvania' , ‘New Jersey' );
print_r ( array_reverse ( $states
));
//Array ([0]=>New Jersey [1]=>Pennsylvania[2]=>Delaware)
$states = array( ‘Delaware' , ‘Pennsylvania' , ‘New   Jersey'
);
print_r ( array_reverse ( $states , 1
));
//Array ([2]=>New Jersey [1]=>Pennsylvania[0]=>Delaware)

array_flip();
array array_flip ( array trans )
交換數(shù)組中的鍵 /值對(duì),注意 trans 中的值需要能夠作為合法的鍵名,例如需要是 integer 或者 string 。如果值的類型不對(duì)將發(fā)出一個(gè)警告,并且有問題的鍵/值對(duì)將不會(huì)反轉(zhuǎn)。
如果同一個(gè)值出現(xiàn)了多次,則最后一個(gè)鍵名將作為它的值,所有其它的都丟失了。
示例:

復(fù)制php內(nèi)容到剪貼板
php代碼:
$trans =array( "a" => 1 , "b" => 1 , "c" => 2 );
$trans = array_flip ( $trans
);
print_r ( $trans
);
//Array([1]=>b[2]=>c );

Determining array size and element uniqueness

count();
計(jì)算數(shù)組中的單元數(shù)目或?qū)ο笾械膶傩詡€(gè)數(shù),很基本哦!

array_count_values();
返回一個(gè)數(shù)組,該數(shù)組用input數(shù)組中的值作為鍵名,該值在input數(shù)組中出現(xiàn)的次數(shù)作為值。
示例:

復(fù)制php內(nèi)容到剪貼板
php代碼:
$array= array( 1 , "hello" , 1 , "world" , "hello" );
print_r ( array_count_values ( $array ));

array_unique();
array array_unique ( array array )
接受 array作為輸入并返回沒有重復(fù)值的新數(shù)組。
示例:

復(fù)制php內(nèi)容到剪貼板
php代碼:
$input =array( "a" => "green" , "red" , "b" => "green" , "blue" , "red" );
$result = array_unique ( $input
);
print_r ( $result );

詳細(xì)用法請(qǐng)參見手冊(cè)!

Sorting arrays

sort();
本函數(shù)對(duì)數(shù)組進(jìn)行排序。當(dāng)本函數(shù)結(jié)束時(shí)數(shù)組單元將被從最低到最高重新安排。
注意 : 本函數(shù)為array中的單元賦予新的鍵名。這將刪除原有的鍵名而不僅是重新排序。

natsort();
利用自然排序法對(duì)數(shù)組進(jìn)行排序!
示例:

復(fù)制php內(nèi)容到剪貼板
php代碼:
$array1 = $array2 = array( "img12.png" , "img10.png" , "img2.png" , "img1.png" );
sort ( $array1
);
echo
"Standard sorting/n"
;
print_r ( $array1
);

natsort ( $array2
);
echo
"/nNatural order sorting/n"
;
print_r ( $array2 );

natcasesort();
natsort()一致,除了不區(qū)分大小寫!

rsort();
sort()一致,這個(gè)是逆向排序。
asort();
sort()一直,但保持鍵名不變。
array_multisort();
對(duì)多個(gè)數(shù)組或多維數(shù)組進(jìn)行排序,具體參考手冊(cè),有詳細(xì)說明!
arsort();
rsort()類似,但保持鍵名不變。
ksort();
sort()類似,對(duì)鍵名進(jìn)行排序。
krsort();
ksort()類似,但是逆向排序。
usort();
利用用戶自定義函數(shù)對(duì)數(shù)組進(jìn)行排序!

Merging, slicing, splicing, and dissectingarrays

array_combine();
array array_combine ( array keys,array values )
創(chuàng)建一個(gè)數(shù)組,用一個(gè)數(shù)組的值作為其鍵名,另一個(gè)數(shù)組的值作為其值

array_merge();
array array_merge ( array array1 [,array array2 [, array ...]] )
將一個(gè)或多個(gè)數(shù)組的單元合并起來,一個(gè)數(shù)組中的值附加在前一個(gè)數(shù)組的后面。返回作為結(jié)果的數(shù)組。
如果輸入的數(shù)組中有相同的字符串鍵名,則該鍵名后面的值將覆蓋前一個(gè)值。
然而,如果數(shù)組包含數(shù)字鍵名,后面的值將不會(huì) 覆蓋原來的值,而是附加到后面。
示例:

復(fù)制php內(nèi)容到剪貼板
php代碼:
$array1 =array( "color" => "red" , 2 , 4 );
$array2 = array( "a" , "b" , "color" => "green" , "shape" => "trapezoid" , 4
);
$result = array_merge ( $array1 , $array2
);
print_r ( $result );

如果只給了一個(gè)數(shù)組并且該數(shù)組是數(shù)字索引的,則鍵名會(huì)以連續(xù)方式重新索引。

復(fù)制php內(nèi)容到剪貼板
php代碼:
$array1 = array();
$array2 = array( 1 => "data"
);
$result = array_merge ( $array1 , $array2 );

如果你想完全保留原有數(shù)組并只想新的數(shù)組附加到后面,用+運(yùn)算符:

復(fù)制php內(nèi)容到剪貼板
php代碼:
$array1 = array();
$array2 = array( 1 => "data"
);
$result = $array1 + $array2 ;

array_merge_recursive();
array array_merge_recursive ( arrayarray1 [, array ...] )
將一個(gè)或多個(gè)數(shù)組的單元合并起來,一個(gè)數(shù)組中的值附加在前一個(gè)數(shù)組的后面。返回作為結(jié)果的數(shù)組。
如果輸入的數(shù)組中有相同的字符串鍵名,則這些值會(huì)被合并到一個(gè)數(shù)組中去,這將遞歸下去,因此如果一個(gè)值本身是一個(gè)數(shù)組,本函數(shù)將按照相應(yīng)的條目把它合并為另一個(gè)數(shù)組。然而,如果數(shù)組具有相同的數(shù)組鍵名,后一個(gè)值將不會(huì)覆蓋原來的值,而是附加到后面。

復(fù)制php內(nèi)容到剪貼板
php代碼:
$ar1 = array( "color" =>array( "favorite" => "red" ), 5 );
$ar2 = array( 10 , "color" => array( "favorite" => "green" , "blue"
));
$result = array_merge_recursive ( $ar1 , $ar2
);
print_r ( $result );

更詳細(xì)的使用請(qǐng)參加手冊(cè)!

array_slice();
array array_slice ( array array, intoffset [, int length [, bool preserve_keys]] )
從數(shù)組中取出一段。
如果offset非負(fù),則序列將從array中的此偏移量開始。如果offset為負(fù),則序列將從array中距離末端這么遠(yuǎn)的地方開始。
如果給出了length并且為正,則序列中將具有這么多的單元。如果給出了length并且為負(fù),則序列將終止在距離數(shù)組末端這么遠(yuǎn)的地方。如果省略,則序列將從offset開始一直到array的末端。
示例:

復(fù)制php內(nèi)容到剪貼板
php代碼:
$input = array( "a" , "b" , "c" , "d" , "e" );
$output = array_slice ( $input , 2 );      
// returns"c", "d", and "e"
$output = array_slice ( $input , - 2 , 1 );  
// returns "d"
$output = array_slice ( $input , 0 , 3 );   
// returns "a","b", and "c"
// note the differences in the array keys
print_r ( array_slice ( $input , 2 , - 1
));
print_r ( array_slice ( $input , 2 , - 1 , true ));

array_splice();
array array_splice ( array&input, int offset [, int length [, array replacement]] )
把input數(shù)組中由offset和length指定的單元去掉,如果提供了replacement參數(shù),則用replacement數(shù)組中的單元取代。返回一個(gè)包含有被移除單元的數(shù)組。注意input中的數(shù)字鍵名不被保留。
如果offset非負(fù),則序列將從array中的此偏移量開始。如果offset為負(fù),則序列將從array中距離末端這么遠(yuǎn)的地方開始。
如果給出了length并且為正,則序列中將具有這么多的單元。如果給出了length并且為負(fù),則序列將終止在距離數(shù)組末端這么遠(yuǎn)的地方。如果省略,則序列將從offset開始一直到array的末端。
具體應(yīng)用參見手冊(cè)!

array_intersect();
array array_intersect ( arrayarray1, array array2 [, array ...] )
返回一個(gè)數(shù)組,該數(shù)組包含了所有在 array1 中也同時(shí)出現(xiàn)在所有其它參數(shù)數(shù)組中的值。注意鍵名保留不變。
示例:

復(fù)制php內(nèi)容到剪貼板
php代碼:
$array1 =array( "a" => "green" , "red" , "blue" );
$array2 = array( "b" => "green" , "yellow" , "red"
);
$result = array_intersect ( $array1 , $array2 );

array_intersect_assoc();
注意和 array_intersect()不同的是鍵名也用于比較。

array_diff();
array_intersect()類似,只不過它是計(jì)算數(shù)組的差集

array_diff_assoc();
array_intersect_assoc()類似,只不過它是計(jì)算數(shù)組的差集

Other useful array functions

array_rand();
mixed array_rand ( array input [,int num_req] )
從數(shù)組中隨機(jī)取出一個(gè)或多個(gè)單元。

shuffle();
bool shuffle ( array &array )
本函數(shù)打亂(隨機(jī)排列單元的順序)一個(gè)數(shù)組。
本函數(shù)為 array 中的單元賦予新的鍵名。這將刪除原有的鍵名而不僅是重新排序。

array_sum();
將數(shù)組中的所有值的和以整數(shù)或浮點(diǎn)數(shù)的結(jié)果返回。

array_chunk();
array array_chunk ( array input, intsize [, bool preserve_keys] )
將一個(gè)數(shù)組分割成多個(gè)數(shù)組,其中每個(gè)數(shù)組的單元數(shù)目由 size 決定。最后一個(gè)數(shù)組的單元數(shù)目可能會(huì)少幾個(gè)。得到的數(shù)組是一個(gè)多維數(shù)組中的單元,其索引從零開始。
將可選參數(shù)preserve_keys 設(shè)為 TRUE,可以使 php 保留輸入數(shù)組中原來的鍵名。如果你指定了 FALSE,那每個(gè)結(jié)果數(shù)組將用從零開始的新數(shù)字索引。默認(rèn)值是 FALSE

php技術(shù)PHP 數(shù)組入門教程小結(jié),轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 北流市| 莱阳市| 灵璧县| 迭部县| 濉溪县| 集安市| 北安市| 信宜市| 闽清县| 泰兴市| 凤山市| 宝应县| 安乡县| 碌曲县| 黄冈市| 唐海县| 和平县| 莱阳市| 绥滨县| 阜南县| 六枝特区| 佛山市| 蒙阴县| 涟源市| 尼玛县| 金坛市| 太保市| 马边| 广州市| 彭泽县| 克拉玛依市| 巴东县| 清涧县| 鄂托克旗| 德令哈市| 介休市| 梁山县| 南漳县| 马公市| 冀州市| 大兴区|