2016-04-11 3 views
0

nehme ich ein Array wie dieses:Zugriff auf die Eigenschaften eines Arrays enthalten json formatiert Elemente in Laravel

$myArray = 
[ 
    { 
     "id": 86, 
     "name": "admin/login" 
    }, 
    { 
     "id": 87, 
     "name": "admin/logout" 
    }, 
    { 
     "id": 88, 
     "name": "admin/desktop" 
    } 
] 

Jedes Element des Arrays json Format hat. und jetzt möchte ich name von Element, die id von 87 zum Beispiel haben.

Erstens Wie kann ich feststellen, dass es ein Element mit dieser ID gibt, dann erhalten name Eigentum davon?

+0

Ist das ein mehrdimensionales Array? Oder eine Schnur? ...? – Rizier123

+0

das ist wie das, was Sie genau sehen.nicht mehr. Nur ein Array von json-Elementen. –

+0

Dann ist dies ein Hügel von Fehlern: https://3v4l.org/2rlpu – Rizier123

Antwort

1

Decode JSON-String in ein Array erhalten. Dann benutze Laravels array_first Methode.

<?php 
$myArray = '[{"id": 86,"name": "admin/login"},{"id": 87,"name": "admin/logout"},{"id": 88,"name": "admin/desktop"}]'; 

// Decode into array 
$array = json_decode($myArray, true); 

// Find item with correct id 
$result = array_first($array, function($key, $value){ 
    return $value['id'] === 87; 
}, false); 

if ($result) { 
    echo 'Item found, it\'s name is: '.$result['name']; 
} 

Wenn Sie id haben Sie in der Variablen finden möchten, müssen Sie use Konstrukt verwenden.

// ID to search for 
$searchID = 87; 

// Find item with correct id 
$result = array_first($array, function($key, $value) use($searchID){ 
    return $value['id'] === $searchID; 
}, false); 
0

Versuchen Sie es mit diesen:

$ newArray = json_decode ($ arr);

und Sie werden Array-Typ

[ 
    [ 
     "id"=> 86, 
     "name"=> "admin/login" 
    ],..... 
    ........ 
] 
0

Ihre $ arr ist so falsch, vorausgesetzt, es ist ein JSON-String ist, dass Sie dies auf folgende Weise tun:

  1. Zuerst json_decode es in ein arry.
  2. Durchlaufen Sie die Elemente, um den gewünschten Wert herauszufinden (87).
  3. Behalten Sie eine Flagge, die Ihnen sagt, ob Sie tatsächlich irgendeinen Wert gefunden haben.

    <?php 
    
    $myArray = 
    '[ 
        { 
         "id": 86, 
         "name": "admin/login" 
        }, 
        { 
         "id": 87, 
         "name": "admin/logout" 
        }, 
        { 
         "id": 88, 
         "name": "admin/desktop" 
        } 
    ]'; 
    
    $myArray = json_decode($myArray , true); 
    
    $found = 0; 
    
    foreach($myArray as $anArray) 
    
    
    { 
    
        if($anArray['id'] == 87) 
        { 
         var_dump($anArray['name']); 
         $found = 1; 
        } 
    } 
    
    if($found == 1) 
    { 
        var_dump("Element found."); 
    } 
    else 
    { 
        var_dump("Element not found. "); 
    } 
    
    ?> 
    
Verwandte Themen