Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Unikalne wartości
Forum PHP.pl > Forum > Przedszkole
merrit
Jak uzyskać tablicę bez powtarzających się wartości [link] w następującej tablicy?

Kod
Array
(
    [0] => Array
        (
            [title] => Some feed item
            [link] => http://www.example.com/article34
            [description] => This article is really cool!
            [author] => Aart-Jan Boor
            [pubDate] => Sat, 08 Dec 2007 13:28:11 GMT
        )

    [1] => Array
        (
            [title] => Some feed item2
            [link] => http://www.example.com/article34
            [description] => This article is really cool too!
            [author] => Aart-Jan Boor
            [pubDate] => Sat, 08 Dec 2007 12:57:56 GMT
        )

    [2] => Array
        (
            [title] => Some feed item3
            [link] => http://www.example.com/article4523
            [description] => This article is the best!
            [author] => Aart-Jan Boor
            [pubDate] => Sat, 08 Dec 2007 12:39:42 GMT
        )

)
wookieb
Bawisz się z array_unique badz...
Kod
function deleteDuplicate($tab)
{
$unique=array();
$ile=count($tab); // KONIECZNE!
for($i=0; $i<$ile; $i++)
{
    if(!in_array($tab[$i]['link'], $unique) $unique[]=$tab[$i]['link']
    else unset($tab[$i]);
}

// jeżeli chcesz jeszce zresetować klucze na koniec to daj $tab=array_merge($tab);
return $tab;
}

print_r(deleteDuplicate($tab));


Tablica wynikowa to:
Kod
Array
(
    [0] => Array
        (
            [title] => Some feed item
            [link] => http://www.example.com/article34
            [description] => This article is really cool!
            [author] => Aart-Jan Boor
            [pubDate] => Sat, 08 Dec 2007 13:28:11 GMT
        )

    [2] => Array
        (
            [title] => Some feed item3
            [link] => http://www.example.com/article4523
            [description] => This article is the best!
            [author] => Aart-Jan Boor
            [pubDate] => Sat, 08 Dec 2007 12:39:42 GMT
        )

)
merrit
array_unique próbowałem zanim jeszcze zapytałem na forum, nie działa tak jak należy, zwraca z tablicy tylko jedną wartość

co do tej funkcji

Kod
function deleteDuplicate($tab)
{
$unique=array();
$ile=count($tab); // KONIECZNE!
for($i=0; $i<$ile; $i++)
{
if(!in_array($tab[$i]['link'], $unique) $unique[]=$tab[$i]['link'] // --------wywala błąd w tej linii
    else unset($tab[$i]);
}

// jeżeli chcesz jeszce zresetować klucze na koniec to daj $tab=array_merge($tab);
return $tab;
}


Parse error: syntax error, unexpected T_VARIABLE in /home/xxx/domains/xxx/public_html/test/xx.php on line xxx
wookieb
Dodaje na jej koncu srednik......
merrit
Cytat
Dodaje na jej koncu srednik......


hehe.. nie, to nie to ..

poza tym jak się zastanowić chwilę to rozwiązanie nie może działać właściwie, do nowej tablicy wpisywany byłby jedynie [$i]['link']..

dobre dzięki za dobre chęci jakoś inaczej sobię poradzę, pozdrawiam..
wookieb
To widze, że ty się nie "zastanawiasz" tylko odrazu walisz takie głupoty.
Nawet nie umiesz poprawić kodu.
Kod
<?php
function deleteDuplicate($tab)
{
$unique=array();
$ile=count($tab); // KONIECZNE!

for($i=0; $i<$ile; $i++)
{
    if(!in_array($tab[$i]['link'], $unique)) $unique[]=$tab[$i]['link'];
    else unset($tab[$i]);
}

$tab=array_merge($tab);
return $tab;
}


$tab=Array
(
    Array
    (
        'title'=>'Some feed item',
        'link'=>'http://www.example.com/article34',
        'description' => 'This article is really cool!',
        'author' => 'Aart-Jan Boor',
        'pubDate' => 'Sat, 08 Dec 2007 13:28:11 GMT'
    ),

    Array
    (
        'title' => 'Some feed item2',
        'link' => 'http://www.example.com/article34',
        'description' => 'This article is really cool too!',
        'author' => 'Aart-Jan Boor',
        'pubDate' => 'Sat, 08 Dec 2007 12:57:56 GMT'
    ),

    Array
    (
        'title' => 'Some feed item3',
        'link' => 'http://www.example.com/article4523',
        'description' => 'This article is the best!',
        'author' => 'Aart-Jan Boor',
        'pubDate' => 'Sat, 08 Dec 2007 12:39:42 GMT'
    )

);

print_r(deleteDuplicate($tab));
?>

I sprawdź sobie "wielki myślicielu" czy to nie działa poprawnie.
merrit
Cytat
To widze, że ty się nie "zastanawiasz" tylko odrazu walisz takie głupoty.
Nawet nie umiesz poprawić kodu.


Pytanie, kto te błędy zrobił, i po co wklejać komuś kod z błędami.

Mimo wszystko dziękuję.
wookieb
To było założenie ideologiczne.
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.