2010-05-03 2 views
1
array(2) { 
    [0]=> 
    object(stdClass)#144 (7) { 
    ["id"]=> 
    string(1) "2" 
    ["name"]=> 
    string(8) "name1" 
    ["value"]=> 
    string(22) "Lorem Ipsum Dolar Amet" 
    ["type"]=> 
    string(8) "textarea" 
    ["group"]=> 
    string(1) "1" 
    ["published"]=> 
    string(1) "1" 
    ["ordering"]=> 
    string(1) "1" 
    } 
    [1]=> 
    object(stdClass)#145 (7) { 
    ["id"]=> 
    string(1) "4" 
    ["name"]=> 
    string(6) "Link1" 
    ["value"]=> 
    string(36) "abcabcab" 
    ["type"]=> 
    string(4) "link" 
    ["group"]=> 
    string(1) "1" 
    ["published"]=> 
    string(1) "1" 
    ["ordering"]=> 
    string(1) "2" 
    } 
} 

Je veux imprimer uniquement "valeur" (abcabcab) de id = 4. Comment puis-je atteindre cet objectif?Comment imprimer une valeur spécifique dans un tableau en PHP?

Répondre

1
foreach ($array as $entry) { 
    if ($entry['id'] == 4) 
     echo $entry['value']; 

} 
+2

Puisque c'est un objet, la syntaxe de la propriété d'objet serait préférable pour '$ entry-> value' – Thorarin

1
array_walk($a, function($el){if($el->id === 4){print $el->value;}}); 
+0

C'est PHP 5.3 et seulement, et un peu ... exotique. Espérons que c'était une réponse ironique? :) – Thorarin

+0

C'est agréable d'adopter une approche différente de temps en temps. :) –

2
foreach($array as $row){ 
if($row['id']==4){ 
    print($row['value']); 
} 
} 
+0

Notez que l'id est une chaîne. Bien que je ne m'attends à rien d'étrange dans les conversions ici, je préfère rester loin des conversions de type pour la comparaison lorsque cela est possible. – Jasper

1

cela fonctionne:

foreach ($array as $entry) { 
    if ($entry->id == 4) 
     echo $entry->value; 
} 

Merci!