Php 我想使用循环将元素随机添加到数组中
我想使用循环将元素随机添加到数组中 我有一个固定的等级,如下所示Php 我想使用循环将元素随机添加到数组中,php,Php,我想使用循环将元素随机添加到数组中 我有一个固定的等级,如下所示 $ranks=array("10","9","8","7","6","5","4","3","2","1"); 根据一条链,我有一个随机的排名位置 $agent_ranks=array("10","6","2","1"); 哪些是缺少的索引 我已经计算了数组之间的差异 $arr_diff=array("9","8","7","5","4","3"); 现在我想要一个动态数组作为结果: $arr_diff_new=array(
$ranks=array("10","9","8","7","6","5","4","3","2","1");
根据一条链,我有一个随机的排名位置
$agent_ranks=array("10","6","2","1");
哪些是缺少的索引
我已经计算了数组之间的差异
$arr_diff=array("9","8","7","5","4","3");
现在我想要一个动态数组作为结果:
$arr_diff_new=array("0","9","8","7","0","5","4","3","0","0");
如何在缺少的索引处添加value=“0”
<?php
$ranks=array("10","9","8","7","6","5","4","3","2","1");
$agent_ranks= array_flip( array("10","6","2","1") );
foreach( $ranks as $k=>$v ) {
if ( isset($agent_ranks[$v]) ) {
$ranks[$k] = 0;
}
}
var_export($ranks);
另请参见:您也可以在if子句中使用数组中的
,检查秩是否为int$agent\u秩
,然后将0或旧秩值推送到新数组
$arr_diff_new = array();
foreach($ranks as $rank){
array_push($arr_diff_new,(in_array($rank,$agent_ranks))?0:$rank);
}
您可以使用数组中的和for循环执行此操作:
$ranks=array("10","9","8","7","6","5","4","3","2","1");
$agent_ranks=array("10","6","2","1");
for($i=0;$i < count($ranks); $i++){
if(in_array($ranks[$i], $agent_ranks)){
$newarray[$i] = 0;
}else{
$newarray[$i] = $ranks[$i];
}
}
print_r($newarray);
$ranks=数组(“10”、“9”、“8”、“7”、“6”、“5”、“4”、“3”、“2”、“1”);
$agent_秩=数组(“10”、“6”、“2”、“1”);
对于($i=0;$i
您可以使用数组函数数组映射
<?php
$array1=array("10","9","8","7","6","5","4","3","2","1");
print_r(array_map('filter',$array1));
function filter($a){
$array2=array("9","8","7","5","4","3");
if(in_array($a,$array2)){
return $a;
}else{
return 0;
}
}
只需将与foreach
循环一起使用
$ranks=array("10","9","8","7","6","5","4","3","2","1");
$agent_ranks=array("10","6","2","1");
$result = array();
foreach($ranks as $key => $value){
$result[] = in_array($value,$agent_ranks) ? 0 : $value;
}
print_r($result);
创建一个新数组,遍历列组,根据缺失索引xbtw中是否存在值,将其添加到0或数字中:位置的随机性是什么?无需使用像asarray\u flip
array\u flip比array\u flip更“额外”的是什么?顺便说一句:也不需要使用foreach。它简单方便@VivekSrivastava:如果是工作,那么就放弃投票和标记作为答案,这样其他用户就会信任标记答案。
$ranks=array("10","9","8","7","6","5","4","3","2","1");
$agent_ranks=array("10","6","2","1");
$result = array();
foreach($ranks as $key => $value){
$result[] = in_array($value,$agent_ranks) ? 0 : $value;
}
print_r($result);