2017-10-12 2 views
0

bekommt Ich habe folgendes mehrdimensionale Array:PHP-Schleife durch verschachtelte Arrays ein bestimmter Wert dann alle Elemente in diesem Array erhalten zu finden, die eine Übereinstimmung

Array 
(
[0] => Array 
    (
     [name] => Botline 
     [description] => Kwese 
     [parent_team_id] => 
     [company_id] => 10554 
     [id] => 13482 
     [external_id] => 13482 
     [extras] => 
    ) 

[1] => Array 
    (
     [name] => Books Boutique 
     [description] => Kwese 
     [parent_team_id] => 
     [company_id] => 10554 
     [id] => 13483 
     [external_id] => 13483 
     [extras] => 
    ) 

[2] => Array 
    (
     [name] => Sij Investments 
     [description] => Kwese 
     [parent_team_id] => 
     [company_id] => 10554 
     [id] => 13484 
     [external_id] => 13484 
     [extras] => 
    ) 

[3] => Array 
    (
     [name] => Steamcard Investments 
     [description] => Kwese installations 
     [parent_team_id] => 
     [company_id] => 10554 
     [id] => 13549 
     [external_id] => 13549 
     [extras] => 
    ) 
) 

ich Schleife durch das Array in der Lage sein wollen, suchen für ein verschachteltes Array, das eine 'ID' hat, die gleich '13484' ist. Nachdem ich diese ID gefunden habe, möchte ich alle Elemente in diesem Array erhalten und sie speichern können.

Die Anzahl der geschachtelten Arrays, die im Haupt-Array enthalten sein können, ist nicht definiert. Daher kann ich keine vorgegebene Methode erstellen, um das richtige Array mit dem passenden Wert zu erhalten. Wie kann ich das erreichen?

+0

Neugierig, wie wurde Array erstellt? Wenn aus einer Datenbank oder XML, ist die Lösung sehr einfach. – Parfait

Antwort

1

Keine Notwendigkeit, Schleife, einfach neu indizieren mit der id und dann Referenz dieses Element. Dies setzt voraus, dass id einzigartig ist:

$array = array_column($array, null, 'id'); 
$result = $array[13484]; 

Oder wenn Sie es nur einmal brauchen:

$result = array_column($array, null, 'id')[13484]; 
2

Sie als $someArrays Ihre mehrdimensionales Array Unter der Annahme, benennen und verwenden $savedArray für die gefundene Array Speichern

$savedArray = array(); 

foreach ($someArrays as $someArray) { 
    if ($someArray['id'] == '13549') { 
     $savedArray = $someArray; 
     break; 
    } 
} 

print_r($savedArray); 
0

Hier können Sie die entsprechend der ID und die damit verbundenen Werte

$array = [[ 

     'name' => 'Botline', 
     'description' => 'Kwese', 
     'parent_team_id' => '', 
     'company_id' => '10554', 
     'id' => '13482', 
     'external_id' => '13482', 
     'extras' => '' 
]]; 

$id = []; 

foreach ($array as $key => $value) { 
    $id[$value['id']]=$value; 
} 

nach assign-ID der Ausgabe von id hier, wie weiter unten

echo "<pre>"; 
print_r($id); 
echo "</pre>"; 


Array 
(
    [13482] => Array 
     (
      [name] => Botline 
      [description] => Kwese 
      [parent_team_id] => 
      [company_id] => 10554 
      [id] => 13482 
      [external_id] => 13482 
      [extras] => 
     ) 

) 
echo "<pre>"; 
print_r($id['13482']['name']); 
echo "</pre>"; 
Verwandte Themen