2016-11-25 30 views
-2

Ich habe über den Zugriff auf Objekt numerische Indexed Array in PHP über das Web, aber keine Lösung gefunden. Hier ein Beispiel: -Wie Zugriff auf Objekt der numerischen indizierten Array in PHP

$cars['0'] = "Volvo"; 
$cars['1'] = "BMW"; 
$cars['2'] = "Toyota"; 

$k=(object)$cars; 


print_r($k); 

Ausgang:

stdClass Object ([0] => Volvo [1] => BMW [2] => Toyota) 

Ich möchte die gleiche Sache mit diesem Beispiel haben Sie einen Blick auf dieses Beispiel, wie ich bin erreichbar: -

$cars['p'] = "Volvo"; 
$cars['q'] = "BMW"; 
$cars['r'] = "Toyota"; 

$k=(object)$cars; 
echo $k->p; 

Schauen Sie sich dieses Beispiel an, das ich möchte mit mir wollen nicht Schleifen.

Ich bekomme den obigen Ausgang. Bitte schlagen Sie vor, wie kann ich auf dieses stdClass Objekt zugreifen, damit ich drucken kann Volvo, BMW und Toyota. Ich möchte keine alternative Lösung, wie sie in ein Array konvertieren und dann darauf zugreifen. Wenn die Antwort bereits auf SO lautet, dann geben Sie bitte den Link an.

Danke.

+0

@jitendrapurohit Ich versuchte es mein lieber Verweis Link Beispiel funktioniert nicht Sie können es selbst ausprobieren. – Stackfull

+0

Überprüfen Sie Fakt # 4 und die drei Optionen in der akzeptierten Antwort.Es funktioniert und erklärt deutlich, was hier getan werden kann – jitendrapurohit

Antwort

1

Verwenden foreach() Schleife wie:

foreach($cars as $car) 
{ 
    echo $car; 
} 

wo $ Autos in einem Objekt.

foreach() reference

+0

Sie müssen mit $ k nicht mit der Variable $ Autos spielen, wie ich sagte, ich will keine alternative Lösung. hier will ich Lösung für stdClass Objekt :) – Stackfull

+0

@Stackfull, dann ersetzen Sie einfach $ Autos mit $ k – Ronald

+0

$ Autos ['p'] = "Volvo"; $ cars ['q'] = "BMW"; $ cars ['r'] = "Toyota"; $ k = (Objekt) $ Autos; echo $ k-> p; Sieh dir dieses Beispiel an, das ich mit meinen möchte nicht Schleifen. – Stackfull

1

Die foreach Schleife funktioniert nur auf Arrays und wird in einer Reihe in einer Schleife durch jeden Schlüssel/Wert-Paar verwendet.

$cars['0'] = "Volvo"; 
$cars['1'] = "BMW"; 
$cars['2'] = "Toyota"; 

$k=(object)$cars; 
foreach($k as $key) { 
    echo $key; 
} 

ODER

$cars['0'] = "Volvo"; 
$cars['1'] = "BMW"; 
$cars['2'] = "Toyota"; 

foreach($cars as $key) { 
    echo $key; 
} 
2

Es gibt keine Art und Weise wie k- $ zu implementieren> 0 oder $ k -> '0' als Sie erwartet haben.

PHP-Arrays können Integer- und String-Schlüssel gleichzeitig enthalten, da PHP nicht zwischen indizierten und assoziativen Arrays unterscheidet. Der Schlüssel kann entweder eine Ganzzahl oder eine Zeichenfolge sein. Der Wert kann von jedem Typ sein. php array manual Nehmen Sie dieses interessante Beispiel

<?php 
$array = array(
    1 => "a", 
    "1" => "b", 
    1.5 => "c", 
    true => "d", 
); 
var_dump($array); 
?> 

AUSGABE:

array(1) { 
    [1]=> 
    string(1) "d" 
} 

in Ihrem Code mit diesem assign:

$cars['p'] = "Volvo"; 
$cars['q'] = "BMW"; 
$cars['r'] = "Toyota"; 
$cars['0'] = "Volvo"; 
$cars['1'] = "BMW"; 
$cars['2'] = "Toyota" 

Autos werden sein:

array(6) { 
    ["p"]=> 
    string(5) "Volvo" 
    ["q"]=> 
    string(3) "BMW" 
    ["r"]=> 
    string(6) "Toyota" 
    [0]=> 
    string(5) "Volvo" 
    [1]=> 
    string(3) "BMW" 
    [2]=> 
    string(6) "Toyota" 
} 

und Objekt k wird sein:

object(stdClass)#2 (6) { 
    ["p"]=> 
    string(5) "Volvo" 
    ["q"]=> 
    string(3) "BMW" 
    ["r"]=> 
    string(6) "Toyota" 
    [0]=> 
    string(5) "Volvo" 
    [1]=> 
    string(3) "BMW" 
    [2]=> 
    string(6) "Toyota" 
} 
+0

ok vielen dank .. :) – Stackfull

Verwandte Themen