Dodawanie elementu do wnętrza tablicy Array |
Dodawanie elementu do wnętrza tablicy Array |
3.04.2011, 08:06:32
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 |
|
|
3.04.2011, 08:26:02
Post
#2
|
|
Grupa: Zarejestrowani Postów: 952 Pomógł: 154 Dołączył: 20.01.2007 Skąd: /dev/oracle Ostrzeżenie: (0%) |
Algorytm prostego sortowania przez wstawianie się kłania. Przebieg pętli składa się z trzech faz:
1. Szukasz miejsca do wstawienia 2. Wstawiasz element 3. Przesuwasz wszystkie obiekty o jedną pozycję do przodu. Przesuwanie robi się bardzo prosto. Jesteś na pozycji X w tablicy. Zapamiętujesz jej obiekt w zmiennej tymczasowej A, a na pozycję wstawiasz obiekt ze zmiennej tymczasowej B. Następnie przepisujesz obiekt ze zmiennej A do B. Tyle. Pierwszą wartość zmiennej B bierzesz z pozycji tablicy, pod którą wstawiasz nowy element. -------------------- Specjalista ds. głupich i beznadziejnych, Zyx
Nowości wydawnicze: Open Power Collector 3.0.1.0 | Open Power Autoloader 3.0.3.0 |
|
|
3.04.2011, 08:28:03
Post
#3
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 0 Dołączył: 14.07.2009 Skąd: Rzeszów Ostrzeżenie: (0%) |
Dzięki wielkie spróbuję tak zrobić jednak takie proste rzeczy mi jeszcze sprawiają problemy pozdrawiam
|
|
|
6.04.2011, 21:19:27
Post
#4
|
|
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
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
PS. Założyłem że tablica jest ciągła, indeksowana od 0 i nie jest to tablica asocjacyjna. |
|
|
6.04.2011, 21:34:00
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) |
Wszystko ładnie pięknie, tylko on nie ma zwykłych tablic, tylko musi informacje wyłuskać z obiektu, dlatego powinien zastosować się do rady pierwszej.
-------------------- Zainteresowania: C#, PHP, JS, SQL, AJAX, XML, C dla AVR
Chętnie pomogę, lecz zanim napiszesz: Wujek Google , Manual PHP |
|
|
6.04.2011, 22:27:14
Post
#6
|
|
Grupa: Zarejestrowani Postów: 25 Pomógł: 7 Dołączył: 27.03.2011 Skąd: Kęty Ostrzeżenie: (0%) |
... 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. @fifi209 moja funkcja robi dokładnie to co chciał autor niezależnie od tego czym są elementy tablicy przykład był z stringami bo było prościej, spróbuj z obiektami i też zadziała. Czytać ze zrozumieniem proponuję autor wyraźnie pisze o tablicy obiektów i problem nie jest z wyszukaniem tylko z wstaiwenim. |
|
|
Wersja Lo-Fi | Aktualny czas: 20.04.2024 - 05:03 |