Wojciech Mruk

Wojciech Mruk Software Developer,
Finanteq S.A.

Temat: Usuwanie elementów z tablicy

Chce usunąć z jednej tablicy stringów np:
a[0] = 'aa';
a[1] = 'bb';
a[3] = 'cc';
a[4] = 'dd';
elementy drugiej tablicy czyli np:
b[0] = 'aa';
b[1] = 'dd';
wynikiem ma być tablica z wartościami 'bb' i 'cc'
problem polega na tym, że nie znam wielkości tych tablic. Czy ktoś mógłby mi pomóc?

konto usunięte

Temat: Usuwanie elementów z tablicy

http://php.net/array_diff
Tomasz Zadora

Tomasz Zadora programuję

konto usunięte

Temat: Usuwanie elementów z tablicy

http://www.php.net/manual/en/function.array-diff.php

Nie bardzo rozumiem co oznacza "nie znam wielkości tablic". Count() się popsuł? Poza tym nie ma potrzeby, by go stosować, ani opierać się na indeksach numerycznych.

konto usunięte

Temat: Usuwanie elementów z tablicy

A to ci pomogli, co? :)
Wojciech Mruk

Wojciech Mruk Software Developer,
Finanteq S.A.

Temat: Usuwanie elementów z tablicy

Niestety niewiele. Ale zawsze to jakiś nowy pomysł. A co do problemu poradziłem sobie z nim sam, chociaż jak na to patrze to kompletnie nieprofesjonalnie :)

konto usunięte

Temat: Usuwanie elementów z tablicy

Wojtek Mruk:
Niestety niewiele. Ale zawsze to jakiś nowy pomysł. A co do problemu poradziłem sobie z nim sam, chociaż jak na to patrze to kompletnie nieprofesjonalnie :)

Tzn. czego nie rozumiesz?


<?php

$a[0] = 'aa';
$a[1] = 'bb';
$a[3] = 'cc';
$a[4] = 'dd';

$b[0] = 'aa';
$b[1] = 'dd';

var_dump($a, $b, array_diff($a, $b));

// output:

array(4) {
[0]=>
string(2) "aa"
[1]=>
string(2) "bb"
[3]=>
string(2) "cc"
[4]=>
string(2) "dd"
}
array(2) {
[0]=>
string(2) "aa"
[1]=>
string(2) "dd"
}
array(2) {
[1]=>
string(2) "bb"
[3]=>
string(2) "cc"
}



No chyba, że ładujesz pytanie dot. JS (Pythona?!) na grupę o PHP.

JS: http://www.jslab.dk/library/Array.diff
Python: [x for x in a if x not in b]
Wojciech Mruk

Wojciech Mruk Software Developer,
Finanteq S.A.

Temat: Usuwanie elementów z tablicy

Po prostu miałem pewne problemy z funkcją "array_diff", dokładnie chodziło o to, że nie wykonywała tego co powinna. To co chciałem zrobić było potrzebne mi do pracy dyplomowej i polega na tym, że mam aplikacje do diagnozowania chorób na podstawie podanych objawów, jeśli objawy pokrywają się w tym samym stopniu z kilkoma chorobami powinna "dopytać" (wyświetlając checkboxy) o pozostałe przy tych chorobach, pomijając już podane przez użytkownika. Problemem, który wynikł mi przy użyciu tej funkcji było to, że usuwało mi tylko jeden, pierwszy element z tej tablicy (sprawdzałem na innym przykładzie i działało wszystko) a wszystkie pozostałe nadal zostawały. Początkowo wydawało mi się ze to coś ze spacjami ale "trim" też nic nie dał. Do tej pory nie wiem jaka była tego przyczyna, może to tylko mój brak wiedzy na temat Zenda i PHP lub źle używałem tej funkcji, może coś w samym Zendzie źle zapisałem... Udało mi się osiągnąć to co chciałem przez zamienianie funkcją "str_replace" tych symptomów które już mam na NULLe, a następnie przepisanie tego do nowej tablicy... Mimo wszystko bardzo dziękuje za pomoc i przede wszystkim za wyrozumiałość dla nowych osób:) Na pewno skorzystam w uwag z ostatniego posta i spróbuje jeszcze raz to zrobić, może tym razem się uda.

Pozdrawiam

konto usunięte

Temat: Usuwanie elementów z tablicy

Wojtek Mruk:
Po prostu miałem pewne problemy z funkcją "array_diff", dokładnie chodziło o to, że nie wykonywała tego co powinna. To

Dziwne te pehapowe funkcje są... Żyją swoim życiem, wbrew woli programistów... Świat jest dziwny, panie dzieju... Ktoś mądry kiedyś powiedział "samochód gwizda, bo kierowca pizda"...
Wojciech Mruk

Wojciech Mruk Software Developer,
Finanteq S.A.

Temat: Usuwanie elementów z tablicy

Piotr L.:
Dziwne te pehapowe funkcje są... Żyją swoim życiem, wbrew woli programistów... Świat jest dziwny, panie dzieju... Ktoś mądry kiedyś powiedział "samochód gwizda, bo kierowca pizda"...
Więc prosze również zauważyć, że każdy kierowca zanim nauczył się poprawnie jeździć i przestał być "pizdą" musiał popełniać błędy. Dlatego komentarz uważam za kompletnie bezsensowny....

konto usunięte

Temat: Usuwanie elementów z tablicy

Wojtek Mruk:
Po prostu miałem pewne problemy z funkcją "array_diff", dokładnie chodziło o to, że nie wykonywała tego co powinna.

A jak to stosowałeś? Faktycznie czasem nie wszystko dzieje się tak jak sobie wymarzymy, ale w przykładzie, który podałeś nie było problemów.
Wojciech Mruk

Wojciech Mruk Software Developer,
Finanteq S.A.

Temat: Usuwanie elementów z tablicy

Wstawiałem do funkcji wszystkie parametry wg dokumentacji PHP. I faktycznie przy rozwiązaniu podanego przykładu się się udało jednak jeśli chciałem zastosować analogicznie do innej sytuacji to już się nie udawało. Na szczęście wszystko się jakoś udało. Cieszę się również, że ktoś mnie poparł w tym, że nie zawsze funkcje działają tak jak programista by chciał... Myślę, że dobrym rozwiązaniem będzie znaleźć implementacje tej funkcji i na jej podstawie spróbować to jakoś napisać.

konto usunięte

Temat: Usuwanie elementów z tablicy

Wojtek Mruk:
Piotr L.:
Dziwne te pehapowe funkcje są... Żyją swoim życiem, wbrew woli programistów... Świat jest dziwny, panie dzieju... Ktoś mądry kiedyś powiedział "samochód gwizda, bo kierowca pizda"...
Więc prosze również zauważyć, że każdy kierowca zanim nauczył się poprawnie jeździć i przestał być "pizdą" musiał popełniać błędy. Dlatego komentarz uważam za kompletnie bezsensowny....

Tak, tylko że jak kierowca przypieprzy w drzewo, to zwalanie winy na samochód jest tak samo śmieszne, jak pisanie, że funkcja "nie wykonywała tego co powinna" ! Znaczy się co ? Funkcja się zbuntowała ? Funkcja zawsze zrobi to, co musi, tak samo jak samochód zawsze jeździ tak, jak nim kieruje kierowca...

konto usunięte

Temat: Usuwanie elementów z tablicy

Wojtek Mruk:
Wstawiałem do funkcji wszystkie parametry wg dokumentacji PHP. I faktycznie przy rozwiązaniu podanego przykładu się się udało jednak jeśli chciałem zastosować analogicznie do innej sytuacji to już się nie udawało. Na szczęście wszystko się jakoś udało. Cieszę się również, że ktoś mnie poparł w tym, że nie zawsze funkcje działają tak jak programista by chciał...

Chciałeś chyba powiedzieć, że nie zawsze programista potrafi użyć funkcję zgodnie z jej przeznaczeniem lub zapodać jej właściwe dane wejściowe...Piotr L. edytował(a) ten post dnia 17.12.11 o godzinie 18:42
Wojciech Mruk

Wojciech Mruk Software Developer,
Finanteq S.A.

Temat: Usuwanie elementów z tablicy

Chyba raczej chciałem powiedzieć, że jak to się mówi "zapomniał wół jak cielęciem był"... Nie wiem dlaczego na forach jest tylu ludzi, którym zależy tylko na tym, aby kogokolwiek pognębić, chyba miały one służyć raczej funkcji pomagania mniej doświadczonym ludziom. Poza tym nie wiem jaką pracę musi Pan wykonywać skoro bawi Pana obrażanie niedoświadczonego studenta informatyki, który nie ma jeszcze żadnego dyplomu, a próbuje się czegoś nauczyć. To chyba trochę upokarzające dla osoby z takim "doświadczeniem"... Mimo wszytko uważam, że to poważne forum, więc na tym poście zakończę tę lekko żałosną dyskusję, ponieważ nie tutaj jest na nią miejsce.Wojtek Mruk edytował(a) ten post dnia 17.12.11 o godzinie 19:23

konto usunięte

Temat: Usuwanie elementów z tablicy

Wojtek Mruk:
Wstawiałem do funkcji wszystkie parametry wg dokumentacji PHP. I faktycznie przy rozwiązaniu podanego przykładu się się udało jednak jeśli chciałem zastosować analogicznie do innej sytuacji to już się nie udawało. Na szczęście wszystko się jakoś udało. Cieszę się również, że ktoś mnie poparł w tym, że nie zawsze funkcje działają tak jak programista by chciał... Myślę, że dobrym rozwiązaniem będzie znaleźć implementacje tej funkcji i na jej podstawie spróbować to jakoś napisać.

Prostując: funkcje działają zawsze tak, jak zostały zaimplementowane, czasem jednak nie działają zgodnie z intuicją programisty. Jeśli chodzi o tablice i indeksy mieszane - tekstowo-numeryczne - to bywają kwiatki.
Wojciech Mruk

Wojciech Mruk Software Developer,
Finanteq S.A.

Temat: Usuwanie elementów z tablicy

Tak, właśnie o to mi chodziło co napisał Pan w sprostowaniu odnośnie tych funkcji...
Jakub L.

Jakub L. Programista

Temat: Usuwanie elementów z tablicy

Ale ostatecznie nie dowiedzieliśmy się dla jakich danych funkcja nie działała jak powinna, a przynajmniej tyle ten wątek mógł mieć wartości dodanej :/.

Następna dyskusja:

Usuwanie danych z tablicy




Wyślij zaproszenie do