2016-04-01 3 views
1

einstellt Ich mag herausfinden, wie ich die letzten Indexschlüssel festlegen kann (ohne zu wissen, was es im Voraus ist) in dem folgenden Code, der einen Preis von einer simplexml Antwort holt:Wie letzten Indexschlüssel

$product_price = $CATEGORIES->PRODUCTS->PRICES->PRICE[0]->AMOUNT; 

Es kann mehr als 1 Preis geben, also manchmal 3, manchmal 5 usw. Aber ich möchte nur den letzten bekommen, also muss der Schlüssel in PRICE[0] den letzten dynamisch holen.

Wie kann dies erreicht werden?

Danke.

+1

'$ PRODUCT_PRICE = $ Kategorien-> Produkte-> Preise-> PREIS [count ($ Kategorien-> Produkte-> Preise-> PREIS) -1] -> HÖHE;' –

+0

@Anant uhgg, das ist hässlich –

+0

Code, der schwer zu lesen ist, der nicht gut formatiert ist. –

Antwort

1

können Sie array_pop()

wie folgt verwenden:

$array = array('a','b','c'); 

// This get the value and remove it from the end of the array 
$test1 = array_pop($array); 

// This will only get the value from the array 
$array[] = $test2 = array_pop($array); 

var_dump($test1); // "c" 
var_dump($test2); // "b" 
var_dump($array); // array('a', 'b') 
+0

Es kann nicht ein Problem, aber es entfernt es tatsächlich aus dem Array, wenn Sie das Array später brauchen, dann ist es nicht ideal. – AbraCadaver

+0

Siehe $ test2 - obwohl Ihre nicht vollständig aus ist, auch im Fall von $ test2, wenn der ursprüngliche Wert durch Verweis oder eine Referenz selbst übergeben wird, dann ist die Referenz verloren. –

2

Sie können Sie end() verwenden letztes Element in Array zu erhalten.

$prices = $CATEGORIES->PRODUCTS->PRICES; 
$last_price = end($prices); 
$amount = $last_price->AMOUNT; 
+0

Auch '$ product_price = end ($ KATEGORIEN-> PRODUKTE-> PREISE-> PREIS) -> BETRAG;' – AbraCadaver

Verwandte Themen