2017-10-12 1 views
0

je le tableau à plusieurs dimensions suivantes:boucle PHP à travers des tableaux imbriqués pour trouver une valeur spécifique, obtenir tous les éléments de ce tableau qui obtient un match

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] => 
    ) 
) 

Je veux être en mesure de boucle à travers le réseau de recherche pour un tableau imbriqué qui a un 'id' égal à par exemple '13484'. Après avoir trouvé cet identifiant, je veux pouvoir récupérer tous les éléments de ce tableau et les sauvegarder.

Le nombre de tableaux imbriqués qui pourraient venir dans le tableau principal n'est pas défini, donc je ne peux pas créer un moyen prédéterminé d'obtenir le tableau de droite qui a la valeur correspondante. Comment puis-je atteindre cet objectif?

+0

Curieux de voir comment a été créé ensemble? Si à partir d'une base de données ou XML, la solution est très simple. – Parfait

Répondre

1

Pas besoin de boucler, il suffit de réindexer en utilisant le id, puis référence cet élément. Cela suppose que id est unique:

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

Ou si vous avez seulement besoin une fois:

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

En supposant que vous nommez votre tableau multidimensionnel comme $someArrays et utiliser $savedArray pour sauver le tableau trouvé

$savedArray = array(); 

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

print_r($savedArray); 
0

Ici, vous pouvez faire la selon l'identifiant et ses valeurs

$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; 
} 

après Assigner à id ici, la sortie id comme ci-dessous

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>";