2 Stimmen

PHP: Wie findet man die Differenz von 2D-Arrays?

Ich habe zwei mehrdimensionale Arrays... mit gleichen Daten... was passiert ist... Werte in einem Array kann intern in einem mehrdimensionalen Array ändern... hier ist mein Array...

$previousA = array();
$previousA["t"] = array("twitter","picasa");
$previousA["d"] = array("youtube","gmail");

$freshA = array();
$freshA["t"] = array("twitter","picasa","gmail");
$freshA["d"] = array("youtube");

Die Gesamtwerte sind zu jeder Zeit vier: "twitter", "picasa", "youtube", "gmail", die sich von $ previousA["t"] <=> $previousA["d"] Nun möchte ich wissen, welche Werte sich von $previousA["t"] zu $ previousA["d"] Vergleich mit $freshA

1voto

codaddict Punkte 426877

Sie können die Array-Differenzfunktion verwenden array_diff als:

$from_d_to_t = array_diff($freshA["t"],$previousA["t"]);
$from_t_to_d = array_diff($freshA["d"],$previousA["d"]);

if($from_d_to_t) {
        echo "Elements moved from d to t are ".implode(',',$from_d_to_t)."\n";
}
if($from_t_to_d) {
        echo "Elements moved from t to d are ".implode(',',$from_t_to_d)."\n";
}

Arbeitscode

0voto

aWebDeveloper Punkte 33447

Das ist ganz einfach, Sie müssen nur Folgendes tun Schleife durch Ihre Multi-Dimension Array (von dem ich annehme, dass es die Ordnung 2 hat) und verwenden Sie die Funktion array_diff um die Sub-Arrays zu vergleichen. Diese Funktion liefert den Unterschied zwischen zwei Arrays, d.h. die zusätzlichen Datensätze im Array

0voto

brian_d Punkte 10944

Wenn Ihre Elemente entweder in t o d dann brauchen Sie wirklich nur eines der folgenden Elemente im Auge zu behalten t o d .

ex)
$previousT = array('twitter', 'picasa');
$currentT = array('picasa', 'gmail');

then 

$d_to_t = array_diff($currentT, $previousT);  // 'gmail'
$t_to_d = array_diff($previousT, $currentT);  // 'twitter'

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X