示例如下:

創(chuàng)新互聯(lián)從2013年開(kāi)始,先為衛(wèi)濱等服務(wù)建站,衛(wèi)濱等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為衛(wèi)濱企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。
?php
//定義一個(gè)數(shù)組
$arr?=?array();
//添加元素
$arr['name']='baiduzhidao';
$arr['url']='baiduzhidaocom';
//刪除某個(gè)元素
unset($arr['url']);
//刪除數(shù)組
unset($arr);
PHP 中的數(shù)組實(shí)際上是一個(gè)有序映射。映射是一種把 values 關(guān)聯(lián)到 keys 的類(lèi)型。可以把它當(dāng)成真正的數(shù)組、列表(向量)、散列表(是映射的一種實(shí)現(xiàn))、字典、集合、棧、隊(duì)列以及更多可能性。由于數(shù)組元素的值也可以是另一個(gè)數(shù)組,樹(shù)形結(jié)構(gòu)和多維數(shù)組也是允許的。
php 數(shù)組的元素是可變化的,可以使用多種方式向php數(shù)組中添加元素:
1、在數(shù)組末尾添加元素 array[] = value; 或者為key元素賦值的方式 array[key] = value;
2、把一個(gè)數(shù)組添加到數(shù)組中 : array_push;
3、用給定的值填充數(shù)組 : array_fill。
?嚳矗?憧梢醞?鄙?韃⑻畛涫?欏H綣?閼?詿?硎?炙饕??椋?憧贍芟朧褂孟允久??暮??爸煤妥芳釉?兀?鏰rray_push()和array_unshift()函數(shù),但這些函數(shù)不能操作關(guān)聯(lián)數(shù)組。 2、刪除數(shù)組元素 如果要從數(shù)組中刪除一個(gè)元素,請(qǐng)使用unset()函數(shù), 使用數(shù)字索引數(shù)組時(shí),刪除數(shù)組元素的辦法更多,更靈活,可以使用array_shift()和array_pop()函數(shù)分別從數(shù)組的開(kāi)頭和末尾刪除一個(gè)元素。 3、交換鍵和值 假設(shè)你想創(chuàng)建一個(gè)名叫$states的新數(shù)組,使用州府作為索引,使用州名作為關(guān)聯(lián)值,使用array_flip()函數(shù)很容易完成這個(gè)任務(wù)。 4、合并數(shù)組 假設(shè)前面的數(shù)組由一個(gè)基于Web的“FlashCard”服務(wù)使用,你想提供一種方法測(cè)試學(xué)生對(duì)美國(guó)各州首府的掌握情況,你可以使用array_merge()函數(shù)合并包含州和首府的數(shù)組。 5、編輯數(shù)組值 假設(shè)在數(shù)組中的數(shù)據(jù)包含大小寫(xiě)錯(cuò)誤,在插入到數(shù)據(jù)庫(kù)之前,你想糾正這些錯(cuò)誤,你可以使用array_map()函數(shù)給每個(gè)數(shù)組元素應(yīng)用一個(gè)回調(diào)。 6、按鍵對(duì)數(shù)組排序 FlashCard程序常常使用各種排序,如按字母順序排序,你可以使用ksort()函數(shù)按鍵對(duì)關(guān)聯(lián)數(shù)組進(jìn)行排序。因?yàn)閿?shù)組是通過(guò)參數(shù)傳遞給ksort()函數(shù)的,意味著你不再需要將排序結(jié)果分配給另一個(gè)變量。 7、隨機(jī)數(shù)組排序 在FlashCard程序中還涉及到另一種隨機(jī)排序技術(shù),這時(shí)你要使用shuffle()函數(shù)實(shí)現(xiàn)數(shù)組項(xiàng)目的隨機(jī)排序。如果不需要打亂數(shù)組順序,你只是想隨機(jī)選擇一個(gè)值,那么使用array_rand()函數(shù)即可。 8、確定鍵和值是否存在 你可以使用in_array()函數(shù)確定一個(gè)數(shù)組元素是否存在。 9、搜索數(shù)組 你可能想搜索數(shù)組資源,這樣用戶就可以方便地用一個(gè)特定的州府檢索關(guān)聯(lián)的州,可以通過(guò)array_search()函數(shù)實(shí)現(xiàn)數(shù)組搜索。 10、標(biāo)準(zhǔn)PHP庫(kù) 標(biāo)準(zhǔn)PHP庫(kù)(Standard PHP Library,SPL)為開(kāi)發(fā)人員提供了許多數(shù)據(jù)結(jié)構(gòu),迭代器,接口,異常和其它以前PHP語(yǔ)言沒(méi)有的功能,使用這些功能可以通過(guò)面向?qū)ο蟮恼Z(yǔ)法遍歷數(shù)組。
1. php中增加數(shù)組元素的方法:
(1)通過(guò)賦值增加數(shù)組元素 :$states[‘name’]=’Tom’;
(2)int array_push(array target_array,mixed variable [,mixed variable…]) 函數(shù)將variable增加到target_array的末尾,成功時(shí)返回true,否則返回false,其中variable可以是多個(gè);
(3)int array_unshift(array target_array,mixed variable [,mixed variable…]) 函數(shù)將variable增加到target_array的數(shù)組頭,成功時(shí)返回true,否則返回false,其中variable可以是多個(gè)。所有已有的數(shù)值鍵都會(huì)相應(yīng)地修改,而關(guān)聯(lián)鍵不受影響;
(4)array array_pad(array target_array,integer length,mixed pad_value) 將target_array 的大小增加到length指定的長(zhǎng)度。
具體方法:
1.使用array_merge方法實(shí)現(xiàn)類(lèi)似array_unshift在開(kāi)頭添加元素的功能
代碼如下:
?php
$queue = array('a', 'B');
$queue = array_merge(array('front' = 'hello'), $queue);
/*
Array
(
[front] = hello
[0] = a
[1] = b
)
*/
?
2.+操作符
代碼如下:
?php
$queue = array('a', 'B');
$queue = array('front' = 'Hello') + $queue;
?
輸出結(jié)果與使用array_merge方法一樣。
3.在元素結(jié)尾添加關(guān)聯(lián)數(shù)組元素
代碼如下:
?php
$queue = array('a', 'B');
$queue['front'] = 'hello';
/*
輸出
Array
(
[0] = a
[1] = b
[front] = hello
)
*/
?
這個(gè)功能需求來(lái)自于網(wǎng)站運(yùn)營(yíng)策略,舉倒子:
在一個(gè)排行列表中,默認(rèn)有以下元素,順序有一定的依據(jù),假設(shè)是按下載次數(shù)排列。
$rows = array(
array('name'='QQ2010'),
array('name'='QQ2009'),
array('name'='迅雷5'),
array('name'='飛信2010'),
array('name'='Kugoo2010'),
array('name'='TTplayer'),
array('name'='Firefox4.0'),
array('name'='美圖秀秀'),
array('name'='360safe'),
array('name'='Chrome6')
);
如果有一個(gè)客戶[可牛殺毒]想買(mǎi)花10元/元下我們第二個(gè)位置,可以大家想,直接把QQ2009替換掉不就完事了嗎。不,那樣的話用戶體驗(yàn)并不好,明明QQ2009是一個(gè)下載次數(shù)比較多的軟件,為什么在列表中卻沒(méi)有了呢。
其實(shí)我們真正的需求是把QQ2009以下的單元都往后推,騰出第二個(gè)位置來(lái)給[可牛殺毒]。如果頁(yè)面中只能顯示10個(gè)單元,那倒霉的就是[Chrome6]了,誰(shuí)叫他們付費(fèi)買(mǎi)我們的位置呢,呵呵。
再說(shuō)到程序原理上來(lái)吧,PHP要實(shí)現(xiàn)這個(gè)需求,挺簡(jiǎn)單,用數(shù)組函數(shù)array_splice就可以了,具體用法參照PHP手冊(cè)。
給一個(gè)完整的例子吧:
?php
$rows = array(
array('name'='QQ2010',),
array('name'='QQ2009',),
array('name'='迅雷5',),
array('name'='飛信2010',),
array('name'='Kugoo2010',),
array('name'='TTplayer',),
array('name'='Firefox4.0',),
array('name'='美圖秀秀',),
array('name'='360safe',),
array('name'='Chrome6',),
);
$pop = array(
'2'=array('name'='可牛殺毒'),
'5'=array('name'='金山詞霸2010'),
);
foreach($pop as $key=$p){
array_splice($rows, $key-1, 0, array($p));
}
var_dump($rows);
?
最近的結(jié)果是:
array(12) {
[0]=
array(1) {
["name"]=
string(6) "QQ2010"
}
[1]=
array(1) {
["name"]=
string(8) "可牛殺毒"
}
[2]=
array(1) {
["name"]=
string(6) "QQ2009"
}
[3]=
array(1) {
["name"]=
string(5) "迅雷5"
}
[4]=
array(1) {
["name"]=
string(12) "金山詞霸2010"
}
[5]=
array(1) {
["name"]=
string(8) "飛信2010"
}
[6]=
array(1) {
["name"]=
string(9) "Kugoo2010"
}
[7]=
array(1) {
["name"]=
string(8) "TTplayer"
}
[8]=
array(1) {
["name"]=
string(10) "Firefox4.0"
}
[9]=
array(1) {
["name"]=
string(8) "美圖秀秀"
}
[10]=
array(1) {
["name"]=
string(7) "360safe"
}
[11]=
array(1) {
["name"]=
string(7) "Chrome6"
}
}
新聞標(biāo)題:php關(guān)聯(lián)數(shù)組添加數(shù)據(jù) php定義一個(gè)數(shù)組
分享網(wǎng)址:http://chinadenli.net/article18/hpesdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、電子商務(wù)、網(wǎng)站策劃、動(dòng)態(tài)網(wǎng)站、搜索引擎優(yōu)化、網(wǎng)站內(nèi)鏈
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)