Flobo
1. Juli 2014 um 15:58
1
Servus,
mich plagt ein kleines Problem, ich möchte auf einer HTML Seite mehrere Variablen ausgeben.
Ich verwende dazu deie JSON PHP Wrapper Klassen von Tommy.
Ich mache folgende Abfrage :
$id_parent_2 = 46317;
$object_arr = $ips->IPS_GetChildrenIDs($id_parent_2);
foreach($object_arr as $object_nr => $object_id){
$value = $ips->GetValueFormatted( $object_id );
}
Nun habe ich das Problem das das Array nach IDs Sortiert ausgegeben wird, z.b. so :
( Kleinste ID zuerst, aufsteigend )
Array
(
[0] => 27139
[1] => 39975
[2] => 43499
[3] => 43922
[4] => 51552
)
Ich möchte allerdings erreichen das die IDs genauso Sortiert werden wie auch im Objektbaum, habe dank eines Netten Menschen den Tipp bekommen das über die ObjectDetails zu lösen, hänge aber irgendwie an der Umsetzung
paresy
1. Juli 2014 um 16:13
2
Hier eine Sortierfunktion vom Retro… Nicht perfekt, aber schon ganz gut:
function compareObject ($a, $b)
{
$a = IPS_GetObject($a);
$b = IPS_GetObject($b);
$comp = ($a['ObjectPosition'] < $b['ObjectPosition']) ? -1 : (($a['ObjectPosition'] == $b['ObjectPosition']) ? 0 : 1);
if ($comp == 0)
{
if (isset($a['ObjectType']))
{
$comp = ($a['ObjectType'] < $b['ObjectType']) ? -1 : (($a['ObjectType'] == $b['ObjectType']) ? 0 : 1);
}
if ($comp == 0)
{
$comp = strcmp($a['ObjectName'], $b['ObjectName']);
}
}
return $comp;
}
Kannst du per usort nutzen: http://php.net/manual/en/function.usort.php
paresy
$parentID = 12345;
foreach(IPS_GetChildrenIDs($parentID) as $objectID)
{
$object = IPS_GetObject($objectID);
$objectList[$object["ObjectID"]] = $object["ObjectPosition"];
}
asort($objectList);
print_r($objectList);
Feddich