Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Dodawanie elementu do wnętrza tablicy Array
grz16w
post
Post #1





Grupa: Zarejestrowani
Postów: 11
Pomógł: 0
Dołączył: 14.07.2009
Skąd: Rzeszów

Ostrzeżenie: (0%)
-----


Witam. Jako że mam pewien problem, z którym wyjątkowo nie potrafię sobie poradzić od kilku dni, postanowiłem zapytać o niego ekspertów. Jest to mój pierwszy post, zawsze radziłem sobie sam i wiem do czego służy wyszukiwarka. Mianowicie wygląda to tak:

Mam tablicę obiektów, w której to obiekty są posortowane wg ich pola $obiekt->id. Chciałbym wykonać pętlę, która by sortowała moją tablicę tak, aby po każdym obiekcie o danym $obiekt->id znalazły się obiekty, które wartość $obiekt->id2 mają taką samą jak $obiekt->id poprzedzającego je obiekt. Oczywiście namieszałem, ale w skrócie to chodzi mi o funkcję, która wpisywałaby mi nową wartość do tablicy w jakimś tam miejscu wewnątrz, a nie jako ostatni element, jednocześnie przesuwając indeksy kolejnych kluczy, od miejsca wstawienia nowego elementu o 1 dalej. Nie mam pojęcia jak to rozwiązać. Pozdrawiam wszystkich i z góry dziękuję za konstruktywne odpowiedzi (IMG:style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wmatusiak
post
Post #2





Grupa: Zarejestrowani
Postów: 25
Pomógł: 7
Dołączył: 27.03.2011
Skąd: Kęty

Ostrzeżenie: (0%)
-----


Bo każde zadanie ma więcej niż jedno rozwiązanie (IMG:style_emoticons/default/wink.gif)
a ja już dawno temu nauczyłem się że do operacjach na tablicach lepiej korzystać z funkcji php do tego stworzonych niż używać pętli.
Rzadko zdarz się operacja na tablicy której nie da się wykonać przez kombinację funkcji php zawartych tutaj (IMG:style_emoticons/default/wink.gif)
  1. <?php
  2. function array_insert($array, $index, $element)
  3. {
  4. $tmp = array_slice($array, 0, $index);
  5. array_push($tmp, $element);
  6. return array_merge($tmp, array_slice($array, $index));
  7. }
  8.  
  9. // Test
  10. $a = Array("a", "b", "c", "d", "e", "f");
  11. $a = array_insert($a, 0, "000");
  12. $a = array_insert($a, 3, "333");
  13. $a = array_insert($a, 20, "end");
  14. // Przykład wstawiania na pozycję elementu "d",
  15. $a = array_insert($a, array_search("d", $a), "nowy element");
  16. // UWAGA jeśli element nie istnieje wstawi na początek
  17. $a = array_insert($a, array_search("nieznany", $a), "nowy na pozycji nieznanego");
  18. var_dump($a);
  19. ?>


PS. Założyłem że tablica jest ciągła, indeksowana od 0 i nie jest to tablica asocjacyjna.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 02:36