Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Grupowanie tablicy
Forum PHP.pl > Forum > PHP
Cromwell
Mam tablicę, którą przepuszczam przez pętlę i wyciągam z niej jedną wartość.
Coś takiego:

  1. $list = '';
  2. foreach($data AS $d){
  3. $list .= $d->value;
  4. }


Liczba elementów w $data jest nieokreślona, może ich być bardzo dużo. Tak samo nie mogę określić $d->value - może przyjmować wiele różnych wartości.
Chciałbym pogrupować elementy z tablicy $data, grupując po $d->value.
Zastanawiałem się o zapisywaniu zamiast do stringa do arraya, a potem użyciu array_diff, jednak o ile to rozwiązanie sprawdzi się świetnie przy dwóch elementach, to przy większej liczbie (nieokreślonej), już nie bardzo.

$data to objekt, składający się z wielu objektów i tego nie mogę zmienić.

thek
Pytanie tylko co grupujesz? Czy lecąc przez obiekt $data grupujesz wszystkie elementy $d jeśli posiadają ten sam $d->value czy jakoś inaczej? W teorii bowiem zawsze możesz utworzyć sobie element tymczasowy i w petli go uzupełniać na pałę... Coś w stylu:
  1. $temp = array();
  2. foreach($data AS $d)
  3. {
  4. $temp[$d->value][] = $d;
  5. }
  6. var_dump($temp);

ale niebezpieczeństwem jest to, że nie wszystko może być kluczem tablicowym i w pewnych sytuacjach nawet nie zauważysz, że coś "gubisz" po drodze. Jeśli jesteś pewny iż brak będzie głupot, to takim podejściem utworzysz tablicę, której kluczami będą interesujące Cię $d->value i do których będzie przypisana tablica obiektów o tejże wartości.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.