在 PHP 的关联数组中显示重复键

Showing duplicate keys in associative array in PHP

我有一个数字数组:

[注意:$arrNum 是动态的。它是使用 rand() 创建的。所以每次的值都会不同。它不是固定值。]

$arrNum = [2, 5, 6, 6, 8];

现在将有一个名为 $arrNumDouble 的关联数组。 $arrNumDouble的key是$arrNum的值,key对应的value是key的double

$arrNumDouble = [];

for ($i=0; $i < sizeof($arrNum); $i++) {

    if (array_key_exists($arrNum[$i], $arrNumDouble)) {

        //repeated values in the $arrNum array, the 
        //key in the $arrNumDouble array is 
         //supplemented with a letter, e.g. “A”

        $arrNumDouble[$arrNum[$i]."A"] = $arrNum[$i] * 2;
    } else {
        $arrNumDouble[$arrNum[$i]] = $arrNum[$i] * 2;
    }    
};

现在 $arrNumDouble 变为:

$arrNumDouble = array
                (
                  [2] => 4,
                  [5] => 10,
                  [6] => 12,
                  [6A] => 12,
                  [8] => 16
                 )

从这个 $arrNumDouble 我可以像这样轻松地在屏幕上显示:

<?php foreach($arrNumDouble as $key => $value): ?>
       <tr>
           <td><?php echo $key; ?></td>
           <td><?php echo $value; ?></td>
       </tr>
  <?php endforeach; ?>

Num    Double
2        4
5        10
6        12
6A       12
8        16

但是我怎么能这样显示:

Num    Double
2        4
5        10
6        12
6        12   //without letter A
8        16

使用 intVal 删除 A 字符并保留数字:

<?php foreach($arrNumDouble as $key => $value): ?>
       <tr>
           <td><?php echo intVal($key); ?></td>
           <td><?php echo $value; ?></td>
       </tr>
  <?php endforeach; ?>

您不应为此目的使用关联数组!

然而,最简单的方法是使用 intval(string) PHP 函数将字符串“6A”转换为数字。

整数(“6A”)returns6

您可以将结果存储为数组的数组,方法如下:

<?php
$arrNum = [2, 5, 6, 6, 8];

$arrNumDouble = array_map(
    function($el) {
        return [$el, 2*$el];
    },
    $arrNum
);

#var_export($arrNumDouble);

foreach($arrNumDouble as $el) {
    echo "2 * $el[0] = $el[1]" . PHP_EOL;
}

share PHP code