Array Sortiert ausgeben

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 :frowning:

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