Heim Backend-Entwicklung PHP-Tutorial PHP将两个关联数组合并函数提高函数效率_php技巧

PHP将两个关联数组合并函数提高函数效率_php技巧

May 17, 2016 am 08:47 AM
关联数组

在foreach中循环查询数据代码量比较少,但是性能比较低,好点的解决办法是将id收集起来,用in一次性查询,但是这引发了数据结构不是我们用PHP自带的函数可以合并的,今天测试了一下:

使用下面的字节写的函数可以解决

从数据库中取出来的数据总是或多或少不符合我们心目中的数据结构,类似于下面的俩个数组,要形成SQL中类似于left join后两个数组合并:

复制代码 代码如下:

$test1 = Array(
0 => Array(
'id' => 9478137,
'create_time' => 1394760724
),
1 => Array(
'id' => 9478138,
'create_time' => 1394760725
),
2 => Array(
'id' => 9478138,
'create_time' => 1394760725
)
);
$test2 = array(
0 => array(
'id' => 9478137,
'message' => 'love you'
),
1 => array(
'id' => 9478138,
'message' => 'miss you'
)
);

如果要将这两个数组,类似于sql中的left join 关联起来我们用什么函数呢?额我没有找见就自己写了
刚开始的时候,用的是嵌套循环:效率低下
复制代码 代码如下:

function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();
foreach($array1 as $key1 => $value1 ) {
foreach ($array2 as $key2 => $value2) {
if($value1[$field1] == $value2[$field2]) {
$ret[$key1] = array_merge($value1, $value2);
}
}
}
return $ret;
}

改进后的办法,使用数组下标,使用两次循环:形成类似于left join的方式
复制代码 代码如下:

$test1 = Array(
0 => Array(
'id' => 9478137,
'create_time' => 1394760724
),
1 => Array(
'id' => 9478138,
'create_time' => 1394760725
),
2 => Array(
'id' => 9478138,
'create_time' => 1394760725
)
);
$test2 = array(
0 => array(
'id' => 9478137,
'message' => 'love you'
),
1 => array(
'id' => 9478138,
'message' => 'miss you'
)
);

function _mergerArray($array1, $array2, $field1, $field2 = '') {
$ret = array();

//使用数组下标的办法
foreach ($array2 as $key => $value) {
$array3[$value[$field1]] = $value;
}
foreach ($array1 as $key => $value) {
$ret[] = array_merge($array3[$value[$field1]], $value);
}
return $ret;
}
$ret = _mergerArray($test1, $test2, 'id', 'id');
print_r($ret);exit;

打印出来结果如下:
复制代码 代码如下:

Array
(
[0] => Array
(
[id] => 9478137
[message] => love you
[create_time] => 1394760724
)
[1] => Array
(
[id] => 9478138
[message] => miss you
[create_time] => 1394760725
)
[2] => Array
(
[id] => 9478138
[message] => miss you
[create_time] => 1394760725
)
)

相当于left join了吧?
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ß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)

Was ist der Unterschied zwischen assoziativem Array und Index-Array in PHP? Was ist der Unterschied zwischen assoziativem Array und Index-Array in PHP? Jul 13, 2023 pm 03:11 PM

Die Unterschiede zwischen assoziativen Arrays und Index-Arrays in PHP sind: 1. Index-Arrays verwenden numerische Indizes, während assoziative Arrays Zeichenfolgenschlüssel verwenden, um Elemente zu identifizieren und darauf zuzugreifen. 2. Die Reihenfolge der Elemente in einem Index-Array ist dieselbe wie die Reihenfolge, in der sie angezeigt werden Sie werden dem Array hinzugefügt, während die Reihenfolge der Elemente in einem assoziativen Array keine Rolle spielt. 3. Ein indiziertes Array kann über einen numerischen Index beginnend bei 0 auf Array-Elemente zugreifen, während ein assoziatives Array Zeichenfolgenschlüssel verwenden kann, um auf Array-Elemente zuzugreifen. 4. Die Elementschlüssel eines indizierten Arrays beginnen mit dem numerischen Index Nummer 0 eines assoziativen Arrays, dessen Elementschlüssel Zeichenfolgen sind.

So summieren Sie assoziative Arrays in PHP So summieren Sie assoziative Arrays in PHP Jul 14, 2023 am 11:41 AM

Methoden zum Summieren assoziativer Arrays in PHP: 1. Verwenden Sie die foreach-Schleife. 2. Verwenden Sie die Funktion array_sum(). 3. Verwenden Sie die Funktion array_reduce().

Ausführliche Diskussion von PHP-Arrays: umfassende Analyse mehrdimensionaler Arrays, assoziativer Arrays usw. Ausführliche Diskussion von PHP-Arrays: umfassende Analyse mehrdimensionaler Arrays, assoziativer Arrays usw. Mar 13, 2024 pm 02:36 PM

Ausführliche Diskussion von PHP-Arrays: umfassende Analyse mehrdimensionaler Arrays, assoziativer Arrays usw. Arrays in PHP sind eine sehr wichtige Datenstruktur, die mehrere Datenelemente speichern und über Indizes darauf zugreifen kann. In PHP können Arrays in verschiedene Typen unterteilt werden, z. B. indizierte Arrays, assoziative Arrays und mehrdimensionale Arrays. Jeder Typ hat seine eigenen einzigartigen Verwendungszwecke und Eigenschaften. Dieser Artikel befasst sich mit den verschiedenen Arten von PHP-Arrays, einschließlich der Deklaration, dem Zugriff, dem Durchlaufen und Betreiben von Arrays, und stellt spezifische Codebeispiele bereit, um den Lesern ein besseres Verständnis zu erleichtern. 1. Index-Array-Indexnummer

Was bedeutet assoziatives PHP-Array? Was bedeutet assoziatives PHP-Array? Aug 03, 2023 pm 05:46 PM

Ein assoziatives PHP-Array ist ein spezieller Array-Typ, bei dem jedes Element aus einem Schlüssel und einem entsprechenden Wert besteht. Im Gegensatz zu gewöhnlichen Arrays sind die Indizes von assoziativen Arrays nicht in numerischer Reihenfolge angeordnet, sondern mithilfe von Schlüsseln wie Zeichenfolgen oder Ganzzahlen Wird verwendet, um Werte zu identifizieren und darauf zuzugreifen. Assoziative Arrays werden häufig bei verschiedenen Programmieraufgaben in PHP verwendet, einschließlich Datenspeicherung, Formularverarbeitung, Datenbankabfragen usw.

Verwenden Sie die PHP-Funktion „mysqli_fetch_assoc', um eine Zeile aus der Ergebnismenge als assoziatives Array abzurufen Verwenden Sie die PHP-Funktion „mysqli_fetch_assoc', um eine Zeile aus der Ergebnismenge als assoziatives Array abzurufen Jul 24, 2023 pm 08:12 PM

Abrufen einer Zeile aus einer Ergebnismenge als assoziatives Array mit der PHP-Funktion „mysqli_fetch_assoc“. In PHP ist die Interaktion mit einer Datenbank eine häufige Aufgabe. Wenn wir eine SELECT-Abfrage ausführen und die Ergebnismenge erhalten, müssen wir normalerweise die Daten in der Ergebnismenge zur weiteren Verarbeitung in einem PHP-Array speichern. PHP bietet mehrere Funktionen zum Verarbeiten von Ergebnismengen. Eine der am häufigsten verwendeten Funktionen ist „mysqli_fetch_assoc“. Diese Funktion ruft eine Zeile aus der Ergebnismenge ab

So vergleichen Sie Unterschiede assoziativer Arrays mithilfe der Funktion array_diff_assoc in PHP So vergleichen Sie Unterschiede assoziativer Arrays mithilfe der Funktion array_diff_assoc in PHP Jun 26, 2023 am 11:44 AM

Mit der kontinuierlichen Weiterentwicklung der Technologie ist PHP eine der am weitesten verbreiteten Webentwicklungssprachen geworden. Bei der Datenverarbeitung ist es derzeit häufig erforderlich, den Unterschied zwischen zwei Arrays zu vergleichen Dies kann mit der Funktion array_diff_assoc in PHP erreicht werden. Die Funktion array_diff_assoc wird verwendet, um die Differenz zwischen zwei assoziativen Arrays zu vergleichen und ein neues Array basierend auf den Schlüssel-Wert-Paaren zurückzugeben. Sie gibt ein Array zurück, das alle Parameter im Parameter-Array enthält.

PHP-Anleitung zur Verwendung der arsort()-Funktion: Assoziative Arrays in absteigender Reihenfolge sortieren PHP-Anleitung zur Verwendung der arsort()-Funktion: Assoziative Arrays in absteigender Reihenfolge sortieren Jun 27, 2023 am 09:28 AM

In der PHP-Programmierung ist Array ein sehr häufiger Datentyp. PHP bietet viele integrierte Funktionen zum Verarbeiten von Arrays, darunter die Funktion arsort(), eine sehr nützliche Funktion, mit der assoziative Arrays in absteigender Reihenfolge sortiert werden können. In diesem Artikel wird die Funktion arsort() ausführlich vorgestellt und einige praktische Beispiele gegeben. 1. Was ist die Funktion arsort()? Die Funktion arsort() ist eine in PHP integrierte Array-Sortierfunktion, die zum Sortieren eines Arrays in absteigender Reihenfolge nach dem Wert eines assoziativen Arrays verwendet wird. Diese Funktion wird sich nicht ändern

Verwendung assoziativer Arrays in PHP und Beispiele Verwendung assoziativer Arrays in PHP und Beispiele Jul 15, 2023 pm 09:37 PM

Verwendung und Beispiele für assoziative Arrays in PHP. In PHP ist ein Array ein sehr häufig verwendeter Datentyp, der zum Speichern mehrerer Werte verwendet wird und auf den über einen Index oder einen Schlüssel zugegriffen werden kann. In vielen Fällen ist die Verwendung assoziativer Arrays praktischer als die Verwendung indizierter Arrays, da assoziative Arrays benutzerdefinierte Schlüssel verwenden können, um auf die Werte im Array zuzugreifen und diese zu manipulieren. Ein assoziatives Array ist ein Array-Typ, der Schlüssel und Werte verknüpft. Jedes Schlüssel-Wert-Paar verfügt über einen eindeutigen Schlüssel im Array, und über den Schlüssel kann auf den entsprechenden Wert zugegriffen und dieser geändert werden. Hier sind einige grundlegende Methoden und Beispiele für die Verwendung assoziativer Arrays

See all articles