Heim  >  Artikel  >  Backend-Entwicklung  >  Wie organisiere ich assoziative Array-Zeilen basierend auf einem bestimmten Spaltenwert?

Wie organisiere ich assoziative Array-Zeilen basierend auf einem bestimmten Spaltenwert?

DDD
DDDOriginal
2024-10-30 11:49:03185Durchsuche

How to Organize Associative Array Rows Based on a Specific Column Value?

Assoziative Array-Zeilen nach Spaltenwert organisieren

Bei der Arbeit mit einem assoziativen Array, das aus Unterarrays besteht, ist es oft notwendig, die Daten basierend neu zu organisieren auf bestimmte Spaltenwerte. Dies ermöglicht eine einfachere Datenabfrage und -analyse.

Angenommen, wir haben ein Array von Subarrays im folgenden Format:

[
    'a' => ['id' => 20, 'name' => 'chimpanzee'],
    'b' => ['id' => 40, 'name' => 'meeting'],
    'c' => ['id' => 20, 'name' => 'dynasty'],
    'd' => ['id' => 50, 'name' => 'chocolate'],
    'e' => ['id' => 10, 'name' => 'bananas'],
    'f' => ['id' => 50, 'name' => 'fantasy'],
    'g' => ['id' => 50, 'name' => 'football']
]

Unser Ziel ist es, diese Subarrays basierend auf dem in einem neuen Array zu gruppieren 'id'-Feld in jedem Subarray vorhanden.

Um dies zu erreichen, können wir die folgenden Schritte ausführen:

  1. Ein leeres Array initialisieren:
$arr = array();
  1. Durchlaufen Sie jedes Unterarray im ursprünglichen Array. Extrahieren Sie für jedes Unterarray seinen „id“-Wert und verwenden Sie ihn als Schlüssel im neuen Array:
foreach ($old_arr as $key => $item) {
   $arr[$item['id']][$key] = $item;
}
  1. Dieser Schritt sortiert das neue Array nach „id“ in aufsteigender Reihenfolge:
ksort($arr, SORT_NUMERIC);
  1. Schließlich wird das resultierende Array nach „id“-Werten organisiert:
array
(
    10 => array
          (
            e => array ( id = 10, name = bananas )
          )
    20 => array
          (
            a => array ( id = 20, name = chimpanzee )
            c => array ( id = 20, name = dynasty )
          )
    40 => array
          (
            b => array ( id = 40, name = meeting )
          )
    50 => array
          (
            d => array ( id = 50, name = chocolate )
            f => array ( id = 50, name = fantasy )
            g => array ( id = 50, name = football )
          )
)

Das obige ist der detaillierte Inhalt vonWie organisiere ich assoziative Array-Zeilen basierend auf einem bestimmten Spaltenwert?. 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