php-结合2个阵列,其中键是多次相同的



我有2个阵列我希望组合,但是两个数组中的值都是相同的,但我仍然希望结合它们。这可能吗?

可以说我有以下数组:

Array ( [0] => 2683 [1] => 2683 [2] => 2683 [3] => 2683 [4] => 2683 [5] => 2683)
Array ( [0] => 2097152 [1] => 4194304 [2] => 6291456 [3] => 8391910 [4] => 234889216 [5] => 234889280)

我使用了array_combine,但仅显示1个值。在这种情况下,我希望它们钥匙允许重复,或者至少将它们带到一个阵列中,我可以简单地循环遍历它们。

这是否可以使用数组?还是其他人有更好的解决方案?我必须以后循环浏览它们并具有匹配的值,这就是重点。如果有帮助,我的代码下方下方。

try {
      $stmt = $pdo->prepare("SELECT deviceid, interfaceoid FROM poorten WHERE deviceid = '2683'");
      $stmt->execute();
      $deviceid = array();
      $interfaceoid = array();
      if($stmt->rowCount() > 0) {
        while($row = $stmt->fetch()) {
          //echo "" . $row['deviceid'] . " : ";
          //echo "" . $row['interfaceoid'] . "</br>";
          $deviceid[]     = $row['deviceid'];
          $interfaceoid[] = $row['interfaceoid'];
        }
        $result = array_combine($deviceid, $interfaceoid);
        var_dump($result);
      }
    }
    catch(PDOException $e) {
      echo "Something went wrong: " . $e->getMessage() . "";
    }

使用 deviceid作为数组键:

$result = [];
if ($stmt->rowCount() > 0) {
    while ($row = $stmt->fetch()) {
        if (!isset($result[$row['deviceid']])) {
            $result[$row['deviceid']] = [];
        }
        $result[$row['deviceid']][] = $row['interfaceoid'];
    }
}
var_dump($result);

尝试一下,对于实时演示 live demo

foreach($values as $k => $v)
{
    $result[$keys[$k]][] = $v;
}
$result = array_map(function($v){return count($v) > 1 ? $v : $v[0];}, $result);

最新更新