2009-08-26 9 views

Antwort

1

Werfen Sie einen Blick auf array_merge.

array array_merge (array $array1 [, array $... ])

fügt die Elemente aus einem oder mehreren Arrays zusammen, so dass die Werte eines an das Ende des vorigen angehängt wird. Es gibt das resultierende Array zurück.

Wenn die Eingabearrays dieselben Zeichenfolgenschlüssel haben, überschreibt der spätere Wert für diesen Schlüssel den vorherigen. Wenn jedoch die Arrays numerische Schlüssel enthalten, überschreibt der spätere Wert nicht den ursprünglichen Wert , sondern wird angehängt.

Werte im Eingabearray mit numerischen Schlüsseln werden mit nummeriert, wobei Schlüssel im Ergebnisarray von Null beginnend inkrementiert werden.

0

Bitte beachten Sie, wenn Sie zwei Datenbankserver abfragen, müssen Sie eine Kollision zwischen den IDs der Datensätze (db auto_increment Funktion), es sei denn Sie verwenden UUID für jeden Datensatz Identifizierung.

Wenn Sie also keine UUID für die Generierung von IDs der Datensätze verwenden, wenn Sie die beiden Arrays mit Ergebnissen zusammenführen, sollten Sie markieren, von welchem ​​Server ein Server stammt, um spätere Kollisionen zu vermeiden.

4

gibt ein Objekt PDOStatement zurück, das die Schnittstelle Traversable implementiert.
Die SPL Klasse IteratorIterator umschließt alle Traversable, um wie eine Iterator zu handeln.
Und eine andere SPL-Klasse, AppendIterator, kann Iteratoren "verketten", um wie ein einziger Iterator zu agieren.

<?php 
$result1 = $pdo1->query('SELECT * FROM foo'); 
$result2 = $pdo2->query('SELECT * FROM foo'); 

$it = new AppendIterator; 
$it->append(new IteratorIterator($result1)); 
$it->append(new IteratorIterator($result2)); 

foreach($it as $row) { 
    echo join(', ', $row), "\n"; 
} 
+0

Weiß jemand, wie man diesen angehängten Iterator Seekable macht? (d. h. es möglich machen, zu bestimmten Stellen in diesem AppendIterator zu springen, um eine Teilmenge der Daten zu erhalten? –