2017-07-17 1 views
-2

Ich habe ein Multidimensionales Array mit einer unbekannten Menge an innerem Array. Es könnte also 4, 5, 6, 7 usw. sein. Ich möchte das multidimensionale Array durchlaufen und jede 6, 7 und 8 Taste auswählen. Wie kann ich das machen?Durchschleifen Multidemensional Array mit unbekannter Menge PHP

Mein mehrdimensionales Array

Array 
(
    [0] => Array 
     (
     [0] => Foo 
     [1] => Bar 
     [2] => 
     [3] => 
     [4] => 1234 
     [5] => 5678 
     [6] => 91011 
     [7] => 20170718 
     [8] => TBC 
     [9] => 

    ) 

[1] => Array 
    (
     [0] => Foo 
     [1] => Foo 
     [2] => Bar 
     [3] => 
     [4] => 1111 
     [5] => 2222 
     [6] => 3333 
     [7] => 4444 
     [8] => 5 
     [9] => 

    ) 


[2] => Array 
    (
     [0] => Bar 
     [1] => Foo 
     [2] => Bar 
     [3] => 
     [4] => 7777 
     [5] => 9999999 
     [6] => 33433 
     [7] => 24 
     [8] => 5 
     [9] => 

    ) 

So in diesem Beispiel ist es array [0], array [1] und array [2]. Bei einer anderen Gelegenheit könnte es Array [15] geben. Die Endarray-Nummer ist unbekannt. Unabhängig davon, wie viele Arrays in der Multi-Dimension vorhanden sind, möchte ich das 4., 5., 6. und 7. Element jedes Arrays zusammen mit ihren Werten auswählen.

Was derzeit Ich habe

foreach($fields as $key => $field) { 

     echo $fields[ $key ]; 

     echo "\n"; 

    } 

AUSGABE ECHO

Array 
    Array 
    Array 
    Array 
    Array 
    Array 
    Array 
    Array 
    Array 

Wie kann dies in einer for-Schleife gesetzt werden, so dass alle Elemente 4,5,6,7 sind einer Variablen zugewiesen und echod out?

+2

Es wird erwartet, dass Sie versuchen, ** den Code selbst zu schreiben **. Nach [** mehr Forschung **] (https://meta.stackoverflow.com/q/261592/1011527) Wenn Sie ein Problem haben ** posten Sie, was Sie versucht haben ** mit einer ** klaren Erklärung von was funktioniert nicht ** und bietet [ein minimales, vollständiges und überprüfbares Beispiel] (http://stackoverflow.com/help/mcve). Lesen Sie [Wie Sie fragen] (http://stackoverflow.com/help/how-to-ask) eine gute Frage. Achten Sie darauf, [die Tour zu besuchen] (http://stackoverflow.com/tour) und lesen [this] (https://meta.stackoverflow.com/q/347937/1011527). –

+0

[foreach] (http://php.net/manual/en/control-structures.foreach.php) – smarber

Antwort

0

Versuchen Sie, diese Funktion

<?php 

$array = Array 
(
    0 => Array 
     (
     0 => "FOO", 
     1 => "BAR", 
     2 => "", 
     3 => "", 
     4 => 1234, 
     5 => 5678, 
     6 => 91011, 
     7 => 20170718, 
     8 => "TBC", 
     9 => "" 
    ), 
1 => Array 
    (
     0 => "Foo", 
     1 => "Foo", 
     2 => "Bar", 
     3 => "", 
     4 => 1111, 
     5 => 2222, 
     6 => 3333, 
     7 => 4444, 
     8 => 5, 
     9 => "", 
    ), 
2 => Array 
    (
     0 => "Bar", 
     1 => "Foo", 
     2 => "Bar", 
     3 => "", 
     4 => 7777, 
     5 => 9999999, 
     6 => 33433, 
     7 => 24, 
     8 => 5, 
     9 => "", 
    ) 
); 

$all4567values = extract4567Elements($array); 

var_dump($all4567values); 
exit; 
function extract4567Elements (array $array) 
{ 
    $elements4567 = []; 

    $index = 0; 
    foreach ($array as $element){ 
     if(is_array($element)){ 
      $elements4567 = array_merge($elements4567, extract4567Elements($element)); 
     }else{ 
      if($index == 4 || $index == 5 || $index == 6 || $index == 7){ 
       $elements4567[] = $element; 
      } 
     } 
     $index++; 
    } 
    return $elements4567; 
} 

Diese gibt

array(12) { 
    [0]=> 
    int(1234) 
    [1]=> 
    int(5678) 
    [2]=> 
    int(91011) 
    [3]=> 
    int(20170718) 
    [4]=> 
    int(1111) 
    [5]=> 
    int(2222) 
    [6]=> 
    int(3333) 
    [7]=> 
    int(4444) 
    [8]=> 
    int(7777) 
    [9]=> 
    int(9999999) 
    [10]=> 
    int(33433) 
    [11]=> 
    int(24) 
} 

eine Demo ansehen (https://eval.in/833525)

Bitte beachten Sie, dass diese Funktion aus, die 4,5,6,7-Werte extrahieren die verschachtelten Arrays in tieferen Ebenen, falls vorhanden.

Verwandte Themen