Php 如何检查数组中的现有元素以分配票证号?
我正在尝试创建一个函数,它将告诉我可以使用哪些自由数字,我有一个函数,它返回数组中已经获取的数字 我希望对照空白数组检查返回的数组中的现有元素,如果该数字不在数组中,则将其推/添加到空数组中,以允许我返回可用数字/票证的数组 我在这里尝试了一些示例,并查看了一些项目的PHP文档,如array_intersect、in_array等 我认为将空闲数字添加到空数组的最佳方法是使用array_push,到目前为止,该方法尚未在示例代码中实现 目前可用的数字功能:Php 如何检查数组中的现有元素以分配票证号?,php,Php,我正在尝试创建一个函数,它将告诉我可以使用哪些自由数字,我有一个函数,它返回数组中已经获取的数字 我希望对照空白数组检查返回的数组中的现有元素,如果该数字不在数组中,则将其推/添加到空数组中,以允许我返回可用数字/票证的数组 我在这里尝试了一些示例,并查看了一些项目的PHP文档,如array_intersect、in_array等 我认为将空闲数字添加到空数组的最佳方法是使用array_push,到目前为止,该方法尚未在示例代码中实现 目前可用的数字功能: function freeNumber
function freeNumbers($drawID){
$minTickets = 1;
$maxTickets = totalTickets($drawID);
$takenNumbers = takenNumbers($drawID);
$freeNumbers = array();
for($i = 1; $i<$maxTickets; $i++){
$x = $i-1;
foreach($takenNumbers as $v){
if(in_array($v, $freeNumbers)){
echo "Element is in array";
break;
} else {
echo $v . "is taken";
}
}
}
//return $freeNumbers;
}
Max tickets只是从数据库事务表中计数,以计数已分配的编号
在这个项目的当前迭代中,我收到了以下每个循环的“1被采用”
提前感谢你,我已经尽可能用最好的语言解释了我要做的事情。但是,如果我无法描述某些内容,请回复,以便我可以进一步解释。您可以使用
数组_diff()
获取所有票号和所取票号数组之间的差值,而不是检查每个数组项:
function freeNumbers($drawID){
$minTickets = 1;
$maxTickets = totalTickets($drawID);
$takenNumbers = takenNumbers($drawID);
$freeNumbers = array();
$allTickets = range(1, $maxTickets);
$freeNumbers = array_values(array_diff($allTickets, $takenNumbers));
//return $freeNumbers;
}
编辑:添加了array\u values()
以重置从array\u diff()函数返回的数组索引
编辑:或者,如果您更喜欢使用array\u push()
函数,您可以这样做:
for($i = 1; $i<$maxTickets; $i++){
if(!in_array($i, $takenNumbers)){
array_push($freeNumbers, $i);
}
}
用于($i=1;$i)
for($i = 1; $i<$maxTickets; $i++){
if(!in_array($i, $takenNumbers)){
array_push($freeNumbers, $i);
}
}