PHP - 如何在数组中插入新元素避免重复?

路易吉·斯佩齐亚

我想创建一个函数,它将数组$arr_previsioni、值$previsione$pos指示位置的数字作为输入参数
该函数应该:
1 - 如果 $previsione 尚不存在,则添加该值。
2 - 如果 input 中给出的值 $previsione 已经存在于数组中,它必须修改 $previsione 的值,使其与所有其他值没有区别,最后将其添加到数组中。

基本上给定一个输入 x 数字,我必须创建一个具有此优先级的唯一数字数组:如果我在输入中给出的 x 数字已经存在于数组中,那么我们需要更改 x 数字(添加或减去某些内容)来使它独一无二。


function aggiungiPrevisione($previsione,$pos,$arr_previsioni){

    echo '<br>';

    // if it is the first element of the array
    if($pos == 1){
        $arr_previsioni['PREVISIONE1'] = $previsione;
        return $arr_previsioni;
    }


    $numero_elementi = count($arr_previsioni);   

    foreach($arr_previsioni as $key=>$value){

        for($i=0; $i <= $numero_elementi+2; $i++){

            // Verifica se esiste
            if (in_array($previsione, $arr_previsioni)){
                // The same number was found in array
                if($previsione  > 45){
                    $previsione = $previsione - 13;
                } else {
                    $previsione = $previsione + 13;
                }
                $previsione = getNumeroGiocabile($previsione); // returns a number from 0 to 90

            } // end checking

        } // end for

    } // end foreach


    // Add $previsione in array
    $arr_previsioni['PREVISIONE'.$pos] = $previsione; // by Vincent Decaux


    return $arr_previsioni;


}

$previsione = makePrevisione(); // return number from 1 to 90
$arr_previsioni = array(); // initially empty
for($pos=1; $pos<=24; $pos++){
   $arr_previsioni = aggiungiPrevisione($previsione,$pos,$arr_previsioni);
} 

var_dump($arr_previsioni);

我创建的函数返回一个包含 24 个元素的数组,但有些元素与其他元素相同。下面是数组的值:

array(24) {
  ["PREVISIONE1"]=>
  int(30)
  ["PREVISIONE2"]=>
  int(71)
  ["PREVISIONE3"]=>
  int(22)
  ["PREVISIONE4"]=>
  int(1)
  ["PREVISIONE5"]=>
  int(67)
  ["PREVISIONE6"]=>
  int(51)
  ["PREVISIONE7"]=>
  int(35)
  ["PREVISIONE8"]=>
  int(14)
  ["PREVISIONE9"]=>
  int(72)
  ["PREVISIONE10"]=>
  int(57)
  ["PREVISIONE11"]=>
  int(11)
  ["PREVISIONE12"]=>
  int(76)
  ["PREVISIONE13"]=>
  int(41)
  ["PREVISIONE14"]=>
  int(40)
  ["PREVISIONE15"]=>
  int(39)
  ["PREVISIONE16"]=>
  int(37)
  ["PREVISIONE17"]=>
  int(34)
  ["PREVISIONE18"]=>
  int(29)
  ["PREVISIONE19"]=>
  int(42)
  ["PREVISIONE20"]=>
  int(55)
  ["PREVISIONE21"]=>
  int(55)
  ["PREVISIONE22"]=>
  int(55)
  ["PREVISIONE23"]=>
  int(55)
  ["PREVISIONE24"]=>
  int(55)
}

如您所见,存在重复值(55)。我希望函数插入$previsione所提供的数字,以防它在数组中不存在,否则它必须修改的值$previsione(为了获得一个尚不存在的数字)并将其添加到数组。

让我们看看我是否可以更容易地理解这个问题。
通过提供这些输入参数:

$arr_previsione = (
  "PREVISIONE1"=>
  30,
  "PREVISIONE2"=>
  71,
  "PREVISIONE3"=>
  22,
  "PREVISIONE4"=>
  1,
  "PREVISIONE5"=>
  67,
  "PREVISIONE6"=>
  51,
  "PREVISIONE7"=>
  35);

$pos = 8;
$previsione = 22;
$arr_previsioni = aggiungiPrevisione($previsione8,8,$arr_previsioni);


我目前可以使用上面显示的函数获得的结果可能是这样的:

$arr_previsione = (
  "PREVISIONE1"=>
  30,
  "PREVISIONE2"=>
  71,
  "PREVISIONE3"=>
  22,
  "PREVISIONE4"=>
  1,
  "PREVISIONE5"=>
  67,
  "PREVISIONE6"=>
  51,
  "PREVISIONE7"=>
  35,
  "PREVISIONE8"=>
  22); // error


我宁愿得到的是:

$arr_previsione = (
  "PREVISIONE1"=>
  30,
  "PREVISIONE2"=>
  71,
  "PREVISIONE3"=>
  22,
  "PREVISIONE4"=>
  1,
  "PREVISIONE5"=>
  67,
  "PREVISIONE6"=>
  51,
  "PREVISIONE7"=>
  35,
  "PREVISIONE8"=>
  48); // after the change the new value entered should be 48 or any other number, it is enough that it is not already present in the array itself

我希望我解释了自己

KIKO软件

看来你正在寻找这样的东西:

function aggiungiPrevisione($previsione,$pos,$arr_previsioni) 
{
    echo '<br>';

    // if it is the first element of the array
    if ($pos == 1) {
        $arr_previsioni['PREVISIONE1'] = $previsione;
        return $arr_previsioni;
    }

    // Make sure $previsione does not yet exist
    while (in_array($previsione, $arr_previsioni)) {
        $previsione = rand(0, 90);
    } 

    // Add $previsione in array
    $arr_previsioni['PREVISIONE'.$pos] = $previsione; 

    return $arr_previsioni;
}

请注意,我只更改了此功能的中间部分。我有一个简单的while循环检查值$previsione是否在数组中$arr_previsioni如果它是一个新的 0 到 90 之间的随机值,则为 生成一个新的随机值$previsione,并再次检查循环条件,直到该值不再存在于数组中。

请注意,一旦使用了 0 到 90 之间的所有值,此例程就会失败。

我也无法纠正所有其他问题,例如:

  • 有一个echo '<br>';用于操作数组的函数。
  • 数组中有不需要的字符串键。默认的数字键可能会这样做。
  • 阵列的错误初始化例程。
  • 我喜欢用英语编程,因为编程语言是英语。混合两种语言不会帮助其他人阅读您的代码,除非他们碰巧是意大利人。顺便说一下,我是荷兰人。你不会喜欢阅读荷兰代码,我敢肯定。与此相反,您的评论是英文的。他们只是为了问题而添加的吗?

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

PHP - 使用 for 循环在数组中添加新元素?

来自分类Dev

PHP在数组中的元素之间插入元素

来自分类Dev

PHP在数组中的元素之间插入元素

来自分类Dev

如何在PHP中合并此数组的重复元素?

来自分类Dev

将一个新元素插入到 php 中的数组键中

来自分类Dev

如何在MongoDB中更新和在数组中插入新元素

来自分类Dev

如何在数组中插入元素,其中有空间作为通过 php 的 db mysql 的下一个字段

来自分类Dev

PHP-如何在数组中存储3个元素的元组?

来自分类Dev

我如何从数组中提取元素并在php中创建一个新元素?

来自分类Dev

PHP如何在数据库中插入NULL?

来自分类Dev

在数组php foreach中插入变量

来自分类Dev

如何在 PHP 中的空数组中插入数组?

来自分类Dev

如何在数组中查找和计数相同的值,然后通过PHP插入带有“ count:(int)”的节点?

来自分类Dev

如何在PHP下拉列表中插入PHP数组?

来自分类Dev

如何使用php避免在数据库上重复?

来自分类Dev

PHP如何在数组中添加斜线

来自分类Dev

如何在数组的中添加PHP分页

来自分类Dev

如何在数组列表中获取对象的PHP

来自分类Dev

PHP如何在数组中查找大写

来自分类Dev

如何在数组 PHP 中获取特定值

来自分类Dev

使用php在数据库中插入数组项时,避免两次显示成功或失败消息

来自分类Dev

如何在数组中找到2个元素并以PHP形式返回数组?

来自分类Dev

如何在php中获取重复的多维数组

来自分类Dev

使用php在多维数组中删除并插入重复元素的数量

来自分类Dev

如何在jQuery数组中插入php的while循环数据?

来自分类Dev

php 在数组中

来自分类Dev

如何使用php在数据库的json数组中插入多行

来自分类Dev

如何使用PHP在数组中的每个项目上插入项目

来自分类Dev

如何在PHP中删除多维数组中的元素?

Related 相关文章

  1. 1

    PHP - 使用 for 循环在数组中添加新元素?

  2. 2

    PHP在数组中的元素之间插入元素

  3. 3

    PHP在数组中的元素之间插入元素

  4. 4

    如何在PHP中合并此数组的重复元素?

  5. 5

    将一个新元素插入到 php 中的数组键中

  6. 6

    如何在MongoDB中更新和在数组中插入新元素

  7. 7

    如何在数组中插入元素,其中有空间作为通过 php 的 db mysql 的下一个字段

  8. 8

    PHP-如何在数组中存储3个元素的元组?

  9. 9

    我如何从数组中提取元素并在php中创建一个新元素?

  10. 10

    PHP如何在数据库中插入NULL?

  11. 11

    在数组php foreach中插入变量

  12. 12

    如何在 PHP 中的空数组中插入数组?

  13. 13

    如何在数组中查找和计数相同的值,然后通过PHP插入带有“ count:(int)”的节点?

  14. 14

    如何在PHP下拉列表中插入PHP数组?

  15. 15

    如何使用php避免在数据库上重复?

  16. 16

    PHP如何在数组中添加斜线

  17. 17

    如何在数组的中添加PHP分页

  18. 18

    如何在数组列表中获取对象的PHP

  19. 19

    PHP如何在数组中查找大写

  20. 20

    如何在数组 PHP 中获取特定值

  21. 21

    使用php在数据库中插入数组项时,避免两次显示成功或失败消息

  22. 22

    如何在数组中找到2个元素并以PHP形式返回数组?

  23. 23

    如何在php中获取重复的多维数组

  24. 24

    使用php在多维数组中删除并插入重复元素的数量

  25. 25

    如何在jQuery数组中插入php的while循环数据?

  26. 26

    php 在数组中

  27. 27

    如何使用php在数据库的json数组中插入多行

  28. 28

    如何使用PHP在数组中的每个项目上插入项目

  29. 29

    如何在PHP中删除多维数组中的元素?

热门标签

归档