Mehrdimensionales Array durchsuchen und bestimmte "gruppe" ausgeben

spikaner

Quereinsteiger @ php
Ich habe ein mehrdimensionales array aufbau ca.
Code:
Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 7
            [2] => 8
            [3] => 9
            [4] => 10
            [5] => 11
            [6] => 12
            [7] => 13
            [8] => 14
            [9] => 15
        )

    [1] => Array
        (
            [0] => 2
            [1] => 3
            [2] => 4
            [3] => 5
            [4] => 6
        )

    [7] => Array
        (
            [0] => 18
            [1] => 19
            [2] => 20
            [3] => 21
            [4] => 22
            [5] => 23
            [6] => 24
        )

    [8] => Array
        (
            [0] => 25
            [1] => 26

jetzt will ich nur mit den inhalt von [1] => Array ( weiterarbeiten und ich habe als "startwert" nur die 2 von [0] => 2 wie mache ich das ? achja alle zahlen sind unique

mfg
 
Indem du das Array mit dem Schlüssel ansprichst?
PHP:
$array = array();
	$array[0] = array(1,7,8,9,10,11,12,13,14,15);
	$array[1] = array(2,3,4,5,6);
	$array[7] = array(18,19,20,21,22,23,24);
	$array[8] = array(25,26);
	
	foreach ($array[1] as $key => $var){
		echo "Schlüssel: " . $key . " - Wert: " . $var ."<br />";
	}
	
	
	echo "<pre>";
	print_r($array);
 
Hallo,

ich verstehe die Frage so, dass du nachher nur mit dem Array weiterarbeiten möchtest, dass die Zahl 2 enthält. Dann würde ich es so angehen:
PHP:
$startwert = 2;
$startarray = // dein großes multidimensionales array
$zielarray = // mit dem du weiterarbeiten willst

for ($i=0; $i<count($startarray); $i++) {
   if (in_array($startwert, $startarray[$i]) {
      $zielarray = $startarray[$i];
      break;
   }
}
Nicht getestet, aber vom Prinzip her geht es so.
 
Er will also den Eintrag der ersten Dimension welche in der Zweiten Dimension [0] == 2 hat.

testdaten:
PHP:
$array[] = array(1,2,3);
$array[] = array(2,3,4);
$array[] = array(3,4,5);

$suchwert = 2;

Ein möglicher Ansatz ist mit array_filter() zu arbeiten
PHP:
//$array filtern nach allen bei denen im SubArray [0]==$suchwert ist
$filteredArray = array_filter($array, 'myFilter');
//von allen gefundenen subarrays den ersten auswählen
$gesuchterArray = array_shift($filteredArray);


function myFilter($subArray){
    return $subArray[0] == $GLOBALS['suchwert'];
}

oder du löst es über eine Schleife
PHP:
foreach($array as $subarray){
    if($subarray[0] == $suchwert){
        $gesuchterArray = $subarray;
        break;
    }
}
 
Zurück