它的方法也很簡單:

網站建設哪家好,找創新互聯建站!專注于網頁設計、網站建設、微信開發、成都小程序開發、集團企業網站建設等服務項目。為回饋新老客戶創新互聯還提供了林周免費建站歡迎大家使用!
array_rand($arr[, $num])$arr == 用來取元素的數組$num == 隨機取下標的個數其中第二個參數 $num 是可選的,默認為1 。
注意:它的返回值在第二個參數大于 1 的時候是一個數組;當第二個參數不設或者傳值 1 的時候是一個下標。
簡單的示例代碼如下:
1、第二個參數不傳值的情況;$arr = Array('a', 'b');$rndKey = array_rand($arr);echo $arr[$rndKey];//輸出 a 或者 b
2、第二個參數傳值大于 1 的情況;$arr = Array('a', 'b', 'c', 'd');$rndKey = array_rand($arr, 2);print_r($rndKey]);//輸出一個隨機key的數組
這個功能需求來自于網站運營策略,舉倒子:
在一個排行列表中,默認有以下元素,順序有一定的依據,假設是按下載次數排列。
$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')
);
如果有一個客戶[可牛殺毒]想買花10元/元下我們第二個位置,可以大家想,直接把QQ2009替換掉不就完事了嗎。不,那樣的話用戶體驗并不好,明明QQ2009是一個下載次數比較多的軟件,為什么在列表中卻沒有了呢。
其實我們真正的需求是把QQ2009以下的單元都往后推,騰出第二個位置來給[可牛殺毒]。如果頁面中只能顯示10個單元,那倒霉的就是[Chrome6]了,誰叫他們付費買我們的位置呢,呵呵。
再說到程序原理上來吧,PHP要實現這個需求,挺簡單,用數組函數array_splice就可以了,具體用法參照PHP手冊。
給一個完整的例子吧:
?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);
?
最近的結果是:
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"
}
}
1. php中增加數組元素的方法:
(1)通過賦值增加數組元素 :$states[‘name’]=’Tom’;
(2)int array_push(array target_array,mixed variable [,mixed variable…]) 函數將variable增加到target_array的末尾,成功時返回true,否則返回false,其中variable可以是多個;
(3)int array_unshift(array target_array,mixed variable [,mixed variable…]) 函數將variable增加到target_array的數組頭,成功時返回true,否則返回false,其中variable可以是多個。所有已有的數值鍵都會相應地修改,而關聯鍵不受影響;
(4)array array_pad(array target_array,integer length,mixed pad_value) 將target_array 的大小增加到length指定的長度。
具體方法:
1.使用array_merge方法實現類似array_unshift在開頭添加元素的功能
代碼如下:
?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;
?
輸出結果與使用array_merge方法一樣。
3.在元素結尾添加關聯數組元素
代碼如下:
?php
$queue = array('a', 'B');
$queue['front'] = 'hello';
/*
輸出
Array
(
[0] = a
[1] = b
[front] = hello
)
*/
?
$a=array(0=array("name"="a","mail"="b"),1=array("name"="d","mail"="e"));
function?addkey($val,?$key,?$param)
{
$val[$param['key']]?=?$param['val'];
}
array_walk($a,'addkey',array('key'='tel',?'val'='123'));
print_r($a);
不知道你是增加數組的元素還是增加數組元素中的內容?
?php
$arr=array('name'='admin','pwd'='123456');
//增加數組元素
$arr['uid']=1;
//增加某個元素的內容
$arr['name']=$arr['name'].'123';
?
用array_slice()函數
array
array_slice
(
array
myarray,
int
offset
[,
int
length]
)
返回myarray數組從地offset開始的length個元素
array_splice與上面的函數類似,只是把返回的部分刪除或替代
你的問題實現方法(給你寫成函數):
?php
function
array_insert($myarray,$value,$position=0)
{
$fore=($position==0)?array():array_splice($myarray,0,$position);
$fore[]=$value;
$ret=array_merge($fore,$myarray);
return
$ret;
}
?
此函數用法
返回一個數組,內容是在$myarray數組的$position處插入$value
例如:
$a=array("a",
"b","c",
"d");
$a=array_insert($a,"add",3);
print_r($a);
//Array
(
[0]
=
a
[1]
=
b
[2]
=
c
[3]
=
add
[4]
=
d
)
【代碼我測試過沒有問題】
                本文題目:php數組指定添加數據 php二維數組添加數據
                
                文章出自:http://www.yijiale78.com/article8/docjgip.html
            
成都網站建設公司_創新互聯,為您提供建站公司、商城網站、外貿建站、企業網站制作、App設計、網站建設
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯
