Ich möchte, dass mir jemand dabei hilft, bitte.
Ich habe dieses Array.
foreach ($callersHistoryArray as $key => $value) {
//check for duplicates and find the highest call duration
if(in_array($value["caller"], $item, true) && $value["process"] == 0)
{
$duplicates = array(
"key" => $key,
"totalTime" => $callersHistoryArray[$key]["totalDurationTime"]
);
echo print_r($duplicates, true);
if ($duplicates["totalTime"] > $max) {
$max = $duplicates["totalTime"];
$value["unique"] = 1;
}
}
Ich schleife werfen $callersHistoryArray
und Duplikate erkennen, ein neues Array erstellen und die max totalTime
von ihnen und setzen unique
Wert zu 1
.
Wenn ich in die zweite Position gehe foreach
-loop, der vorherige muss sich ändern unique
zu 1
. Aber ich kann das nicht. Ich habe es benutzt prev($callersHistoryArray)
, um das letzte aber nichts zu bekommen.
Antworten:
0 für die Antwort № 1Ich verstehe die Frage nicht ganz. Ich vermute, Sie möchten mit etwas wie dem folgenden beginnen:
<?php
$duplicates = array();
$maxTime = 0;
$unique = null;
foreach ($callersHistoryArray as $key => $value) {
//check for duplicates and find the highest call duration
if(in_array($value["caller"], $item, true) && $value["process"] == 0)
{
if ($maxTime < $value["totalDurationTime"]) {
$maxTime = $value["totalDurationTime"];
$unique = $key;
}
$duplicates[] = $value;
}
}
echo print_r($duplicates, true); // array of duplicates
echo print_r($callersHistoryArray[$unique], true); // item with highest time
Ungeachtet der Fehler sollten Sie jedoch ein Array der Duplikate erhalten und auch sagen, welcher Artikel die maximale Dauer hat. Ich weiß nicht wo $item
kommt aus, also YMMV.
Möglicherweise müssen Sie auch zwei Elemente mit derselben maximalen Dauer behandeln.