Ⅰ php 如何實現,從數組中隨機取出數據,還要保證下次不會再取到
$a
=
range(1,100);
function
get_one(&$a){
if(count($a)>=1){
$key=array_rand($a,1);
$value=$a[$key];
unset($a[$key]);
return
$value;
}else{
return
"都取光了";
}
}
//每次取值可以直接
echo
"取到的值:".get_one($a);
echo
"<br>還剩:".count($a);
Ⅱ php數組函數序列之array_splice() - 在數組任意位置插入元素
array_splice定義和用法
array_splice()
函數與
array_slice()
函數類似,選擇數組中的一系列元素,但不返回,而是刪除它們並用其它值代替。
如果提供了第四個參數,則之前選中的那些元素將被第四個參數指定的數組取代。
最後生成的數組將會返回。
語法
array_splice(array,offset,length,array)參數
描述
array
必需。規定數組。
offset
必需。數值。如果
offset
為正,則從輸入數組中該值指定的偏移量開始移除。如果
offset
為負,則從輸入數組末尾倒數該值指定的偏移量開始移除。
length
可選。數值。如果省略該參數,則移除數組中從
offset
到
結尾的所有部分。如果指定了
length
並且為正值,則移除這么多元素。如果指定了
length
且為負值,則移除從
offset
到數組末尾倒數
length
為止中間所有的元素。
array
被移除的元素由此數組中的元素替代。如果沒有移除任何值,則此數組中的元素將插入到指定位置。
提示和注釋
提示:如果函數沒有刪除任何元素
(length=0),則替代數組將從
start
參數的位置插入。(參見例子
3)
注釋:不保留替代數組中的鍵。
例子
1
復制代碼
代碼如下:
<?php
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$a2=array(0=>"Tiger",1=>"Lion");
array_splice($a1,0,2,$a2);
print_r($a1);
?>
輸出:
Array
(
[0]
=>
Tiger
[1]
=>
Lion
[2]
=>
Horse
[3]
=>
Bird
)例子
2
與例子
1
相同,但是輸出返回的數組:
復制代碼
代碼如下:
<?php
$a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
$a2=array(0=>"Tiger",1=>"Lion");
print_r(array_splice($a1,0,2,$a2));
?>
輸出:
Array
(
[0]
=>
Dog
[1]
=>
Cat
)例子
3
length
參數設置為
0:
復制代碼
代碼如下:
<?php
$a1=array(0=>"Dog",1=>"Cat");
$a2=array(0=>"Tiger",1=>"Lion");
array_splice($a1,1,0,$a2);
print_r($a1);
?>
輸出:
Array
(
[0]
=>
Dog
[1]
=>
Tiger
[2]
=>
Lion
[3]
=>
Cat
)
Ⅲ php數組中插入新的元素
你好,看你意思是要在每個二維數組里插入新的數據
<?php
foreach($arrsas$each){
$each['name']='wer';
$each['salary']='wer';//wer的值,可以自己動態調用
}
?>
希望能解決你的問題,還望採納
Ⅳ php生成不重復隨機數、數組的4種方法分享
下面寫幾種生成不重復隨機數的方法,直接上代碼吧
復制代碼
代碼如下:
<?php
define('RANDOM_MAX',
100);
define('COUNT',
10);
echo
'max
random
num:
'.RANDOM_MAX,
'
;result
count:'.COUNT,
'<br/>';
invoke_entry('rand1');
invoke_entry('rand2');
invoke_entry('rand3');
invoke_entry('rand4');
function
invoke_entry($func_name)
{
$time
=
new
time();
$time->time_start();
call_user_func($func_name);
echo
$func_name.'
time
spend:
',
$time->time_spend();
echo
'<br/>';
}
function
rand1()
{
$numbers
=
range
(1,
RANDOM_MAX);
shuffle($numbers); //隨機打亂數組
$result
=
array_slice($numbers,
1,
COUNT);
return
$result;
}
function
rand2()
{
$result
=
array();
while(count($result)<
COUNT)
{
$result[]
=
mt_rand(1,
RANDOM_MAX); //mt_rand()是比rand()更好更快的隨機函數
$result
=
array_unique($result);
//刪除數組中重復的元素
}
return
$result;
}
function
rand3()
{
$result
=
array();
while(count($result)
<
COUNT)
{
$_tmp
=
mt_rand(1,
RANDOM_MAX);
if(!in_array($_tmp,
$result))
{ //當數組中不存在相同的元素時,才允許插入
$result[]
=
$_tmp;
}
}
return
$result;
}
function
rand4()
{
$result
=
array();
while
(count($result)
<
COUNT)
{
$result[]
=
mt_rand(1,
RANDOM_MAX);
$result
=
array_flip(array_flip($result)); //array_flip將數組的key和value交換
}
return
$result;
}
class
time
{
private
$_start;
public
function
time_start()
{
$this->_start
=
$this->microtime_float();
}
public
function
time_spend()
{
return
$this->microtime_float()
-
$this->_start;
}
private
function
microtime_float()
{
list($usec,
$sec)
=
explode("
",
microtime());
return
((float)$usec
+
(float)$sec);
}
}
?>
Ⅳ PHP隨機插入怎麼寫
$a=array(1,2,5,6,7,9,111,22,33,55)
$b=$a[rand(0,count($a)-1)];//這樣b就得到一個隨機值
插入b;
Ⅵ php向一個空數組中添加1000個不重復的數字,要求:數字需要在0-3000中產的代碼
// 1、首先定義一個空的目標數組
$arr = [];
// 2、開始for循環
for ($i = 0; $i < 1000; ) {
****// 3、獲取0~3000之間的隨機數
****$r = rand(0, 3000);
****// 4、判斷該隨機數是否存在目標數組中
****if (!in_array($r, $arr)) {
********// 5、如果不存在,則將該隨機數添加到目標數組中
********$arr[] = $r;
********// 6、最關鍵的一步:只有向目標數組添加新值的時候才改變$i的值
********$i ++;
****}
****continue;
}
// 7、最後列印出目標數組,也可使用print_r函數
var_mp($arr);
die;
總結:該題的難點在於在什麼時候再改變計數器變數$i的值,只有數組元素新增的時候才能改變$i,使其加1,當然for循環體也可反向寫,也可採用別的循環結構,留給你自己發揮^>^。
希望能幫助到你,望採納,謝謝~
Ⅶ php數組值取隨機數
用array_rand()函數就可以實現。
array_rand():從數組中隨機選出一個或多個元素,並返回。
語法:array_rand(array,number)
array:必需。規定輸入的數組參數。
number:可選。默認是 1。規定返回多少個隨機的元素。
例子:$a = ['a','b','c'];//定義一個二維數組
$b = $array_rand($a,1);//從數組a里隨機選取一個元素賦值給變數b。
Ⅷ PHP如何在數組指定位置插入元素
第一步$arr=array('a','b','c','d','e','f','g');//目標數組
第二步$i_arr=array('1','2');//要插入的數組
第三步$n=2;//插入的位置
第四步array_splice($arr,$n,0,$i_arr);
第五步print_r($arr);
按順序輸入,並且輸入正確就可以了。
Ⅸ php中怎樣從一個數組中隨機取一個元素出來呢
用array_rand()函數吧,它可以從一個數組中隨機取一個或者多個下標出來,有了下標,就可以從原數組拿到對應的元素了。它的用法也很簡單:array_rand($arr[,
$num])$arr
==
用來取元素的數組$num
==
隨機取下標的個數其中第二個參數
$num
是可選的,默認為1
。注意:它的返回值在第二個參數大於
1
的時候是一個數組;當第二個參數不設或者傳值
1
的時候是一個下標。簡單的示例代碼如下:1、第二個參數不傳值的情況;$arr
=
Array('a',
'b');$rndKey
=
array_rand($arr);echo
$arr[$rndKey];//輸出
a
或者
b2、第二個參數傳值大於
1
的情況;$arr
=
Array('a',
'b',
'c',
'd');$rndKey
=
array_rand($arr,
2);print_r($rndKey]);//輸出一個隨機key的數組