Heim > Backend-Entwicklung > PHP-Problem > So fragen Sie die Position von Elementen in einem zweidimensionalen Array in PHP ab

So fragen Sie die Position von Elementen in einem zweidimensionalen Array in PHP ab

PHPz
Freigeben: 2023-04-19 14:01:14
Original
952 Leute haben es durchsucht

In PHP müssen wir manchmal die Position eines bestimmten Elements in einem zweidimensionalen Array finden. Der Vorgang kann sehr einfach sein, kann aber auch sehr schwierig werden, wenn Sie nicht die richtige Methode kennen. In diesem Artikel werden verschiedene Methoden zum Abfragen der Position von Elementen in einem zweidimensionalen Array in PHP vorgestellt und Ihnen bei der Lösung dieses Problems geholfen.

Fragen Sie die Position einzelner Elemente ab

Wenn Sie die Position eines bestimmten Elements in einem zweidimensionalen Array abfragen möchten, können Sie eine zweistufige for-Schleifenanweisung verwenden. Durchlaufen Sie zunächst jedes Unterarray und suchen Sie dann das Zielelement in jedem Unterarray. Wenn das Zielelement gefunden wird, kann seine Position zurückgegeben werden.

Das Folgende ist ein Beispielcode, der eine for-Schleifenanweisung verwendet, um die Position von Elementen in einem zweidimensionalen Array abzufragen:

function find_element($arr, $target) {
    for ($i = 0; $i < count($arr); $i++) {
        for ($j = 0; $j < count($arr[$i]); $j++) {
            if ($arr[$i][$j] == $target) {
                return array($i, $j);
            }
        }
    }
}
Nach dem Login kopieren

In dieser Funktion stellt der erste Parameter $arr das zweidimensionale Array dar, nach dem wir suchen. und der zweite Parameter $target stellt das Zielelement dar, nach dem wir suchen. Verwenden Sie zwei for-Schleifenanweisungen, um das Array zu durchlaufen. Wenn das Zielelement gefunden wird, wird seine Position zurückgegeben.

Angenommen, wir haben ein 2D-Array wie folgt:

$arr = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir können den folgenden Code verwenden, um die Position der Zahl 5 zu ermitteln:

$target = 5;
$position = find_element($arr, $target);
echo "The position of $target is ({$position[0]}, {$position[1]})";
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dies wird ausgegeben: Die Position von 5 ist (1, 1).

Verwenden Sie die Funktion array_search(), um die Position abzufragen

Zusätzlich zum manuellen Schreiben einer for-Schleife können wir auch die Funktion array_search() von PHP verwenden, um die Position eines bestimmten Elements in einem zweidimensionalen Array abzufragen. Die Funktion array_search() kann nur Elemente in einem eindimensionalen Array finden, kann jedoch nicht direkt in einem zweidimensionalen Array suchen. Daher müssen wir das zweidimensionale Array in ein eindimensionales Array „abflachen“ und dann die Position des Zielelements ermitteln. Anschließend können wir einige mathematische Operationen verwenden, um die Positionen des eindimensionalen Arrays in die Positionen des zweidimensionalen Arrays umzuwandeln.

Das Folgende ist ein Beispielcode, der ein zweidimensionales Array in ein eindimensionales Array „flacht“ und die Funktion array_search() verwendet, um das Zielelement zu finden:

function find_element($arr, $target) {
    $flatten = array();
    foreach ($arr as $subarr) {
        $flatten = array_merge($flatten, $subarr);
    }
    $key = array_search($target, $flatten);
    if ($key !== false) {
        $col = $key % count($arr[0]);
        $row = floor($key / count($arr[0]));
        return array($row, $col);
    }
}
Nach dem Login kopieren

In dieser Funktion „flachen“ wir zuerst die beiden -dimensionales Array in eindimensionales Array $flatten. Anschließend verwenden wir die Funktion array_search(), um die Position des Zielelements in $flatten zu finden. Wenn das Zielelement gefunden wird, können wir einige mathematische Operationen verwenden, um die eindimensionale Position in eine zweidimensionale Position umzuwandeln.

Angenommen, wir haben ein 2D-Array wie folgt:

$arr = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir können den folgenden Code verwenden, um die Position der Zahl 5 zu ermitteln:

$target = 5;
$position = find_element($arr, $target);
echo "The position of $target is ({$position[0]}, {$position[1]})";
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dies wird ausgegeben: Die Position von 5 ist (1, 1).

Verwenden Sie die Funktion array_filter(), um die Position abzufragen

Ähnlich wie die Funktion array_search() können wir auch die Funktion array_filter() und einige mathematische Operationen verwenden, um die Position eines bestimmten Elements in einem zweidimensionalen Array abzufragen. Durch die Verwendung der Funktion array_filter() wird das Problem des manuellen Schleifens und „Reduzierens“ von Arrays vermieden.

Das Folgende ist ein Beispielcode, der die Funktion array_filter() und mathematische Operationen verwendet, um die Position eines bestimmten Elements in einem zweidimensionalen Array abzufragen:

function find_element($arr, $target) {
    $result = array_filter($arr, function ($subarr) use ($target) {
        return in_array($target, $subarr);
    });
    if (!empty($result)) {
        $row = key($result);
        $col = array_search($target, $arr[$row]);
        return array($row, $col);
    }
}
Nach dem Login kopieren

In dieser Funktion verwenden wir die Funktion array_filter(), um das zu filtern zweidimensionales Array und behalten Sie nur diejenigen bei, die das Zielelement-Subarray enthalten. Dann können wir die Funktion key() und die Funktion array_search() verwenden, um die Position des Zielelements zu finden.

Angenommen, wir haben ein 2D-Array wie folgt:

$arr = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Wir können den folgenden Code verwenden, um die Position der Zahl 5 zu ermitteln:

$target = 5;
$position = find_element($arr, $target);
echo "The position of $target is ({$position[0]}, {$position[1]})";
Nach dem Login kopieren
Nach dem Login kopieren
Nach dem Login kopieren

Dies wird ausgegeben: Die Position von 5 ist (1, 1).

Zusammenfassung

Das Abfragen einer Position in einem 2D-Array in PHP kann schwierig sein, aber es gibt ein paar verschiedene Methoden, mit denen wir dieses Problem lösen können. Unabhängig davon, ob Sie eine for-Schleife von Hand schreiben, die Funktion array_search() oder die Funktion array_filter() verwenden, ist etwas Mathematik erforderlich, um eine eindimensionale Position in eine zweidimensionale Position umzuwandeln. Hoffentlich hilft Ihnen dieser Artikel dabei, besser zu verstehen, wie Sie eine Position in einem 2D-Array in PHP abfragen.

Das obige ist der detaillierte Inhalt vonSo fragen Sie die Position von Elementen in einem zweidimensionalen Array in PHP ab. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage