Heim Backend-Entwicklung PHP-Tutorial PHP behandelt das Problem der Auswahl auf Eltern-Kind-Ebene

PHP behandelt das Problem der Auswahl auf Eltern-Kind-Ebene

Aug 08, 2016 am 09:21 AM
arr data Level

/**
     * @param $data 操作的数组
     * @param string $fieldPri 唯一键名,如果是表则是表的主键
     * @param string $fieldPid 父ID键名
     * @param int $pid 一级PID的值
     * @param string $sid 子ID用于获得指定指ID的所有父ID
     * @param int $type 操作方式1=>返回多维数组,2=>返回一维数组,3=>得到指定子ID(参数$sid)的所有父
     * @param string $html 名称前缀,用于在视图中显示层次感的列表
     * @param int $level 不需要传参数(执行时调用)
     * @return array
     */
	private function channel($data, $fieldPri = 'cid', $fieldPid = 'pid', $pid = 0, $sid = null, $type = 2, $html = " ", $level = 1)
    {
        if (!$data) {
            return array();
        }
        switch ($type) {
            case 1:
                $arr = array();
                foreach ($data as $v) {
                    if ($v[$fieldPid] == $pid) {
                        $arr[$v[$fieldPri]] = $v;
                        $arr[$v[$fieldPri]]['html'] = str_repeat($html, $level - 1);
                        $arr[$v[$fieldPri]]["Data"] = self::channel($data, $fieldPri, $fieldPid, $v[$fieldPri], $sid, $type, $html, $level + 1);
                    }
                }
                return $arr;
            case 2:
                $arr = array();
                $id = 0;
                foreach ($data as $v) {
                    if ($v[$fieldPid] == $pid) {
                        $arr[$id] = $v;
                        $arr[$id]['level'] = $level;
                        $arr[$id]['html'] = str_repeat($html, $level - 1);
                        $sArr = self::channel($data, $fieldPri, $fieldPid, $v[$fieldPri], $sid, $type, $html, $level + 1);
                        $arr = array_merge($arr, $sArr);
                        $id = count($arr);
                    }
                }
                return $arr;
            case 3:
                static $arr = array();
                foreach ($data as $v) {
                    if ($v[$fieldPri] == $sid) {
                        $arr[] = $v;
                        $sArr = self::channel($data, $fieldPri, $fieldPid, $pid, $v[$fieldPid], $type, $html, $level + 1);
                        $arr = array_merge($arr, $sArr);
                    }
                }
                return $arr;
        }
    }
Nach dem Login kopieren

Urheberrechtserklärung: Dieser Artikel ist ein Originalartikel des Bloggers und darf nicht ohne die Erlaubnis des Bloggers reproduziert werden.

Das Obige stellt das Problem der Eltern-Kind-Ebenenauswahl in PHP vor, einschließlich seiner Aspekte. Ich hoffe, es wird für Freunde hilfreich sein, die sich für PHP-Tutorials interessieren.

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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Daten befinden sich im Datenordner? Welche Daten befinden sich im Datenordner? May 05, 2023 pm 04:30 PM

Der Datenordner enthält System- und Programmdaten, wie z. B. Softwareeinstellungen und Installationspakete. Jeder Ordner im Datenordner stellt einen anderen Typ von Datenspeicherordner dar, unabhängig davon, ob sich die Datendatei auf den Dateinamen „Data“ oder die Dateierweiterung „Benannte Daten“ bezieht Es handelt sich bei allen um vom System oder Programm angepasste Datendateien. Daten sind eine Sicherungsdatei zur Datenspeicherung, die im Allgemeinen mit Meidaplayer, Notepad oder Word geöffnet werden kann.

Was tun, wenn die MySQL-Ladedaten verstümmelt sind? Was tun, wenn die MySQL-Ladedaten verstümmelt sind? Feb 16, 2023 am 10:37 AM

Die Lösung für die verstümmelten MySQL-Ladedaten: 1. Suchen Sie die SQL-Anweisung mit verstümmelten Zeichen. 2. Ändern Sie die Anweisung in „LOAD DATA LOCAL INFILE „employee.txt“ INTO TABLE EMPLOYEE Zeichensatz utf8;“.

Was sind die Unterschiede zwischen xdata und data Was sind die Unterschiede zwischen xdata und data Dec 11, 2023 am 11:30 AM

Die Unterschiede sind: 1. xdata bezieht sich normalerweise auf unabhängige Variablen, während sich data auf den gesamten Datensatz bezieht. 2. xdata wird hauptsächlich zum Erstellen von Datenanalysemodellen verwendet, während Daten normalerweise für Datenanalysen und Statistiken verwendet werden Für die Regressionsanalyse, Varianzanalyse und Vorhersagemodellierung können Daten mit verschiedenen statistischen Methoden analysiert werden. 4. xdata erfordert normalerweise eine Datenvorverarbeitung und Daten können vollständige Originaldaten enthalten.

Mehr Retouren als Verkäufe: Der Humane Ai Pin entwickelt sich zu einer kommerziellen Katastrophe Mehr Retouren als Verkäufe: Der Humane Ai Pin entwickelt sich zu einer kommerziellen Katastrophe Aug 08, 2024 pm 01:14 PM

Kurz nach der Einführung des Humane Ai Pin ergaben vernichtende Kritiken, dass das KI-Gadget alles andere als marktreif sei, da die meisten der ursprünglich beworbenen Funktionen entweder nicht richtig funktionierten oder einfach fehlten, ebenso wie die Akkulaufzeit

Die Misserfolgsquote bei KI-Projekten liegt bei über 80 % – die Studie nennt eine schlechte Problemerkennung und einen Fokus auf die neuesten Technologietrends unter den Hauptproblemen Die Misserfolgsquote bei KI-Projekten liegt bei über 80 % – die Studie nennt eine schlechte Problemerkennung und einen Fokus auf die neuesten Technologietrends unter den Hauptproblemen Aug 31, 2024 am 12:59 AM

Jeder und seine Tante scheinen auf der Suche nach überhöhten Gewinnspannen und einem Marketing-Hype auf den KI-Zug aufzuspringen – schauen Sie sich nur AMDs jüngstes Ryzen-Rebranding als Paradebeispiel für diesen KI-Hype an. Das hat eine aktuelle Studie von RAND herausgefunden

MySQL schreibt verrückte Fehlerprotokolle MySQL schreibt verrückte Fehlerprotokolle Feb 18, 2024 pm 05:00 PM

Eine Kerngeschäftsdatenbank, die Version ist MySQL8.34 Community Server Edition. Seit seiner Einführung ist das Fehlerprotokoll dieses Datenbankservers sehr schnell gestiegen (wie in der Abbildung unten dargestellt) und kann alle 24 Stunden eine Kapazität von mehr als 10 G erreichen. Da ein Störungsalarm vorlag und der normale Zugang zum Betrieb nicht beeinträchtigt war, durfte das zuständige Personal den MySQL-Dienst nicht neu starten. Angesichts dieser Situation musste ich eine automatische geplante Aufgabe einrichten, um diese Protokolle jede Nacht zu einer festen Zeit zu bereinigen. Führen Sie für bestimmte Vorgänge „crontab -e“ in der Systembefehlszeile aus und fügen Sie die folgende Textzeile hinzu: 0001***echo>/data/mysql8/data/mysql_db/mysql.log Speichern Sie und verlassen Sie den Bearbeitungsmodus

Können Daten in der Vue-Komponente keine Funktion sein? Können Daten in der Vue-Komponente keine Funktion sein? Dec 19, 2022 pm 05:22 PM

Nein, Daten in der Vue-Komponente müssen eine Funktion sein. Um die Wiederverwendung von Daten zu verhindern, werden Komponenten in Vue als Funktionen definiert. Die Daten in der Vue-Komponente sollten voneinander isoliert sein und sich nicht gegenseitig beeinflussen. Bei jeder Wiederverwendung der Komponente sollten die Datendaten einmal kopiert werden. Andere Daten werden kopiert. Wenn die Daten der wiederverwendeten lokalen Komponenten nicht betroffen sind, müssen Sie über die Datenfunktion ein Objekt als Status der Komponente zurückgeben.

请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 请教怎么修改url某一参数的参数值呢?是要拆开了再拼回去吗 Jun 13, 2016 am 10:24 AM

请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?那么请问如何修改url某一参数的参数值呢?是要拆开了再拼回去吗?http://127.0.0.1/myo/newuser.php?mod=search&type=fastone比如现在我要修改mod=new要怎么做呢?------解决方案--------------------发送了请求

See all articles