Heim  >  Artikel  >  Backend-Entwicklung  >  So führen Sie zweidimensionale Arrays in PHP zusammen, ohne Schlüsselwerte zu ändern

So führen Sie zweidimensionale Arrays in PHP zusammen, ohne Schlüsselwerte zu ändern

PHPz
PHPzOriginal
2023-04-26 09:07:46838Durchsuche

In PHP ist Array eine sehr wichtige Datenstruktur, die in vielen Szenarien verwendet werden kann. Zweidimensionale Arrays sind eines davon und werden normalerweise zum Speichern von Daten wie Tabellen oder Matrizen verwendet. In der tatsächlichen Entwicklung kann es vorkommen, dass Sie zwei oder mehr zweidimensionale Arrays zu einem neuen zweidimensionalen Array zusammenführen müssen. Wenn Sie jedoch zum Zusammenführen direkt die PHP-eigene Funktion array_merge verwenden, tritt ein Problem auf: Die zusammengeführten Schlüsselwerte ändern sich. Lassen Sie uns also besprechen, wie man zweidimensionale Arrays zusammenführt, ohne die Schlüsselwerte zu ändern. array_merge 函数进行合并,会出现一个问题:合并后的键值会改变。那么,下面就来探讨一下如何在不改变键值的情况下合并二维数组。

理解二维数组的结构

在 PHP 中,二维数组其实就是一个包含多个一维数组的数组。每个一维数组为一个子数组,可以在其中存储多个键值对。举个例子,下面是一个包含两个子数组的二维数组:

$array = [
    [
        'name' => 'John',
        'age' => 25,
    ],
    [
        'name' => 'Mary',
        'age' => 30,
    ],
];

可以看出,每个子数组代表一个人的信息,其中 nameage 是键,对应的值分别是这个人的名字和年龄。在实际开发中,需要对这种结构的数据进行很多种操作,比如对数组进行排序、筛选、合并等等。

使用 array_merge 函数合并二维数组

在 PHP 中,合并数组的方法非常多,其中使用 array_merge 函数是一种常见方法。这个函数可以将多个数组合并成一个新的数组,合并后的键值会自动重新排序。下面是使用 array_merge 函数将两个二维数组合并的例子:

$array1 = [
    [
        'name' => 'John',
        'age' => 25,
    ],
];

$array2 = [
    [
        'name' => 'Mary',
        'age' => 30,
    ],
];

$array = array_merge($array1, $array2);

var_dump($array);

输出结果为:

array(2) {
  [0]=>
  array(2) {
    ["name"]=>
    string(4) "John"
    ["age"]=>
    int(25)
  }
  [1]=>
  array(2) {
    ["name"]=>
    string(4) "Mary"
    ["age"]=>
    int(30)
  }
}

可以看到,合并后的数组按照原来的顺序进行了重新排序,且键值重新赋值,这是因为 array_merge 函数会将所有数组的键值作为新数组的键,而新键的值就是原始数组中的值。如果原始数组的键值存在重复,后面的数组会覆盖前面数组的值。这种行为在很多场景下是不可取的,因为原始数组的键值可能包含重要的信息,重新排序或者覆盖后可能会导致数据错误。那么,有没有一种方法可以保留原始数组的键值呢?

使用 array_replace_recursive 函数合并二维数组

array_replace_recursive 函数是 PHP 自带的另一种数组合并方法,和 array_merge 函数不同的是,它会保留原始数组的键值,而不是重新排序或覆盖。此外,array_replace_recursive 函数还支持递归合并数组,可以处理多维数组的合并。下面是使用 array_replace_recursive 函数将两个二维数组合并的例子:

$array1 = [
    [
        'name' => 'John',
        'age' => 25,
    ],
];

$array2 = [
    [
        'name' => 'Mary',
        'age' => 30,
    ],
];

$array = array_replace_recursive($array1, $array2);

var_dump($array);

输出结果为:

array(1) {
  [0]=>
  array(2) {
    ["name"]=>
    string(4) "Mary"
    ["age"]=>
    int(30)
  }
}

可以看到,合并后的数组保留了原始数组的键值和顺序,而不是改变它们的顺序或覆盖它们的值。此外,array_replace_recursive 函数还支持对多维数组进行合并,处理起来更加方便。但需要注意的是,在递归合并数组时,如果数组的结构不一致,可能会导致结果异常,需要特别注意。

总结

在 PHP 中,二维数组是常见的数据结构之一。在实际开发中,可能会遇到需要将两个或多个二维数组合并为一个新的二维数组的情况。如果直接使用 PHP 自带的 array_merge 函数进行合并,会出现数组重新排序或者键值被覆盖的情况。为了保持原始数组的键值和顺序,可以使用 array_replace_recursive 函数进行数组的合并。此外,array_replace_recursive

Verstehen Sie die Struktur zweidimensionaler Arrays

In PHP ist ein zweidimensionales Array eigentlich ein Array, das mehrere eindimensionale Arrays enthält. Jedes eindimensionale Array ist ein Unterarray, in dem mehrere Schlüssel-Wert-Paare gespeichert werden können. Das Folgende ist beispielsweise ein zweidimensionales Array, das zwei Unterarrays enthält: #🎜🎜#rrreee#🎜🎜# Es ist ersichtlich, dass jedes Unterarray die Informationen einer Person darstellt, wobei name und age ist der Schlüssel und die entsprechenden Werte sind der Name und das Alter der Person. In der tatsächlichen Entwicklung müssen viele Vorgänge an Daten dieser Struktur ausgeführt werden, z. B. Sortieren, Filtern, Zusammenführen usw. von Arrays. #🎜🎜#

Verwenden Sie die Funktion array_merge, um zweidimensionale Arrays zusammenzuführen

#🎜🎜#In PHP gibt es viele Möglichkeiten, Arrays zusammenzuführen, darunter die Verwendung der Funktion array_merge eine gängige Methode. Diese Funktion kann mehrere Arrays zu einem neuen Array zusammenführen und die zusammengeführten Schlüsselwerte werden automatisch neu angeordnet. Das Folgende ist ein Beispiel für die Verwendung der Funktion array_merge zum Zusammenführen zweier zweidimensionaler Arrays: #🎜🎜#rrreee#🎜🎜#Das Ausgabeergebnis ist: #🎜🎜#rrreee#🎜🎜#Wie Sie Wie Sie sehen können, wird das Array nach dem Zusammenführen gemäß der ursprünglichen Reihenfolge neu angeordnet und die Schlüsselwerte werden neu zugewiesen. Dies liegt daran, dass die Funktion array_merge die Schlüsselwerte aller verwendet Arrays als Schlüssel des neuen Arrays, und der Wert des neuen Schlüssels ist der ursprüngliche Array-Wert in . Wenn im ursprünglichen Array doppelte Schlüsselwerte vorhanden sind, überschreibt das nachfolgende Array die Werte im vorherigen Array. Dieses Verhalten ist in vielen Szenarien unerwünscht, da die Schlüsselwerte des ursprünglichen Arrays wichtige Informationen enthalten können und eine Neuordnung oder ein Überschreiben zu Datenfehlern führen kann. Gibt es also eine Möglichkeit, die Schlüsselwerte des ursprünglichen Arrays beizubehalten? #🎜🎜#

Verwenden Sie die Funktion array_replace_recursive, um zweidimensionale Arrays zusammenzuführen

#🎜🎜#Die Funktion array_replace_recursive ist eine weitere Methode zum Zusammenführen von Arrays, die in PHP enthalten ist, und array_merge Die Funktion code> unterscheidet sich dadurch, dass sie die Schlüsselwerte des ursprünglichen Arrays beibehält, anstatt sie neu anzuordnen oder zu überschreiben. Darüber hinaus unterstützt die Funktion <code>array_replace_recursive auch das rekursive Zusammenführen von Arrays und kann das Zusammenführen mehrdimensionaler Arrays verarbeiten. Das Folgende ist ein Beispiel für die Verwendung der Funktion array_replace_recursive zum Zusammenführen zweier zweidimensionaler Arrays: #🎜🎜#rrreee#🎜🎜#Das Ausgabeergebnis ist: #🎜🎜#rrreee#🎜🎜#Wie Sie Sie können sehen, dass das Array nach dem Zusammenführen die Schlüsselwerte und die Reihenfolge des ursprünglichen Arrays beibehält, anstatt ihre Reihenfolge zu ändern oder ihre Werte zu überschreiben. Darüber hinaus unterstützt die Funktion array_replace_recursive auch das Zusammenführen mehrdimensionaler Arrays, was die Verarbeitung komfortabler macht. Es ist jedoch zu beachten, dass beim rekursiven Zusammenführen von Arrays die Ergebnisse möglicherweise abnormal sind, wenn die Strukturen der Arrays inkonsistent sind. Daher ist besondere Aufmerksamkeit erforderlich. #🎜🎜#

Zusammenfassung

#🎜🎜#In PHP ist ein zweidimensionales Array eine der häufigsten Datenstrukturen. In der tatsächlichen Entwicklung kann es vorkommen, dass Sie zwei oder mehr zweidimensionale Arrays zu einem neuen zweidimensionalen Array zusammenführen müssen. Wenn Sie zum Zusammenführen direkt die PHP-eigene Funktion array_merge verwenden, wird das Array möglicherweise neu angeordnet oder die Schlüsselwerte werden möglicherweise überschrieben. Um die Schlüsselwerte und die Reihenfolge des ursprünglichen Arrays beizubehalten, können Sie Arrays mit der Funktion array_replace_recursive zusammenführen. Darüber hinaus unterstützt die Funktion array_replace_recursive auch das rekursive Zusammenführen von Arrays, was sehr praktisch ist. Es ist jedoch zu beachten, dass beim rekursiven Zusammenführen von Arrays besonderes Augenmerk auf die Struktur des Arrays gelegt werden muss, um abnormale Situationen zu vermeiden. #🎜🎜#

Das obige ist der detaillierte Inhalt vonSo führen Sie zweidimensionale Arrays in PHP zusammen, ohne Schlüsselwerte zu ändern. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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