我有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);