2016-10-24 3 views
0

Ich habe ein Problem, dass ich 10 Schleifen abhängig von Arrays Nummer machen muss, um die Daten zu erhalten.Wie man eine spezifische Daten aus mehrdimensionalen Array ziehen

ich festgelegt, dass durch etwas Hilfe von meinem anderen Beitrag, aber ich habe ein Problem Umbenennung

Die Array Ich verwende

Array 
(
    [catalog] => Array 
     (
      [book] => Array 
       (
        [0] => Array 
         (
          [took] => Array 
           (
            [dodo] => Array 
             (
              [ahmadz] => Array 
               (
                [lolo] => Array 
                 (
                  [tata] => Array 
                   (
                    [author] => ahmadz 
                    [title] => Midnight Rain 
                    [genre] => Fantasy 
                    [price] => 5.95 
                    [publish_date] => 2000-12-16 
                    [description] => A former architect battles corporate zombies, 
           an evil sorceress, and her own childhood to become queen 
           of the world. 
                   ) 

                 ) 

               ) 

             ) 

           ) 

         ) 

        [1] => Array 
         (
          [took] => Array 
           (
            [dodo] => Array 
             (
              [ahmadz] => Array 
               (
                [lolo] => Array 
                 (
                  [tata2] => Array 
                   (
                    [author] => Ralls, Kim 
                    [title] => Midnight Rain 
                    [genre] => Fantasy 
                    [price] => 5.95 
                    [publish_date] => 2000-12-16 
                    [description] => A former architect battles corporate zombies, 
           an evil sorceress, and her own childhood to become queen 
           of the world. 
                   ) 

                 ) 

               ) 

             ) 

           ) 

         ) 

       ) 

     ) 

) 

Und dies, wie ich ein bestimmten Daten von ihm zu erhalten

$author_array = array(); 
array_walk_recursive($array, function($value, $key) { 
    if (in_array($key, array("author"))) { 
     echo $author_array[] = $value; 
    } 
}); 

ich habe das Problem, dass vor diesen Werten

[author] => ahmadz 
[title] => Midnight Rain 
[genre] => Fantasy 
[price] => 5.95 

Ich habe verschiedene Schlüssel

tata und tata2

ich nur die Werte in „tata“ Schlüssel

erhalten möchten, aber der Code oben zurückkehrt, beide Werte von „tata“ und „tata2“ Das ist ein bisschen eine schlampige Methode

Schlüssel

Bitte helfen sie mir die Daten von einem Schlüssel nicht beide

Antwort

1

zu bekommen, aber es sollte funktionieren. Suchen Sie einfach nach dem Tata-Schlüssel und extrahieren Sie das Autor-Feld daraus.

$author_array = array(); 
array_walk_recursive($array, function($value, $key) { 
    if (in_array($key, array("tata"))) { 
     echo $author_array[] = $value["author"]; 
    } 
}); 
+0

hat es versucht, aber es hat nicht funktioniert! –

+0

Was gibt Ihnen ein var dump von $ value in obigem? – sequoiasnow

0

einfach verschachtelte foreach-Schleife verwenden

foreach ($ array [ "Katalog"] [ "Buch"] als $ key => $ value) {foreach ($ value [ "nahm"] [“ dodo "] [" ahmadz "] [" lolo "] als $ key2 => $ value2) {echo" author: ". $ value2 ["author"];}}

+0

es Ausgabe ist Autor: jac1author: jack2author: jack3author: jack4 ist wollen Werte, die Tata Schlüssel als Elternteil Ich will nicht alle Werte –

+0

foreach ($ Array ["Katalog"] ["Buch"] als $ key = > $ Wert) {foreach ($ Wert ["nahm"] ["Dodo"] ["Ahmadz"] ["Lolo"] als $ key2 => $ value2) {if ($ key2 == "tata") {echo "Autor:". $ value2 ["Autor"];}}} –

Verwandte Themen