Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [php] sortowanie tablicy
Forum PHP.pl > Forum > PHP
pieto
Witam, jak moe posortowac tablice asojacyjna np $ikonki["name_pl"]

gdzie w innej tablicy definiuj order a i nazwe o tym samym id co $src["order"][] mam jeszcze w innej,

w praktyce sluzy mi to do zdefiniowania wystepownia kolejnosci i podmiany nazw a wyglada ta
  1. <?php
  2. $src["string_en"][]= 'Datasheet';  $src["src"][]= 'icon_manual.gif';  $src["order"][] ='0'; $src["string_pl"][]= 'Karta katalogowa';
  3. $src["string_en"][]= 'Manual'; $src["src"][]= 'icon_manual.gif';  $src["order"][] ='1'; $src["string_pl"][]= 'Dokumentacja';
  4. $src["string_en"][]= 'PIN Assignment'; $src["src"][]= 'icon_pin.gif'; $src["order"][] ='2'; $src["string_pl"][]= 'Opis złącza';
  5. $src["string_en"][]= 'Software'; $src["src"][]= 'icon_software.gif'; $src["order"][] ='3'; $src["string_pl"][]= 'Oprogramowanie';
  6. $src["string_en"][]= 'Faq';  $src["src"][]= 'icon_faq.gif'; $src["order"][] ='4'; $src["string_pl"][]= 'Faq';
  7. $src["string_en"][]= 'CE Certification'; $src["src"][]= 'icon_ce.gif';  $src["order"][] ='5'; $src["string_pl"][]= 'Certyfikat CE';
  8. $src["string_en"][]= 'FCC Certification'; $src["src"][]= 'icon_fcc.gif'; $src["order"][] ='6'; $src["string_pl"][]= 'Certyfikat FCC';
  9. ?>


a dalej przeszukuje i zamieniam za pomocą pętli

  1. <?php
  2. for($iii='0';$iii<=($pl_count-2); $iii++ ){
  3.  
  4. if($ikonki["name_pl"][$iii]!=''){
  5.  
  6. $ikonki["src"][$iii] = $src["src"][2]; // ikonka domysla - pytajniik 
  7. //podmiana wartosci z src
  8.  
  9. for($iii3='0';$iii3<=($pl_count-1); $iii3++ ){
  10.  
  11.  
  12. if( ($ikonki["name_pl"][$iii]==$src["string_en"][$iii3]) || ($ikonki["name_pl"][$iii]==$src["string_pl"][$iii3])) { 
  13.  
  14. $ikonki["name_pl"][$iii] = $src["string_pl"][$iii3]; //nazwy angielskie - na polskie 
  15. $ikonki["src"][$iii]  = $src["src"][$iii3]; //nazwy angielskie - na polskie 
  16.  
  17. }
  18.  
  19.  
  20. }
  21. ?>

Brakuje mi tylko sortowania, ktoz wspomoze dobra radą, podpowiedzią ?
domis86
co w ogole chcesz posortowac i wedlug czego?
pieto
np $ikonki["name_pl"] wg. $src['order']
domis86
Cytat(pieto @ 23.03.2007, 17:11:44 ) *
np $ikonki["name_pl"] wg. $src['order']


Ok, tylko niebardzo widać zwiazek pomiedzy tablicą $ikonki["name_pl"] a tablicą $src['order'] - to zupelnie oddzielne tablice.

Proponuje, zamiast przechowywac dane w taki sposob:

Kod
$src["string_en"][]= 'Datasheet';         $src["src"][]= 'icon_manual.gif';   $src["order"][]  ='0';  $src["string_pl"][]= 'Karta katalogowa';
$src["string_en"][]= 'Manual';            $src["src"][]= 'icon_manual.gif';   $src["order"][]  ='1';  $src["string_pl"][]= 'Dokumentacja';
$src["string_en"][]= 'PIN Assignment';    $src["src"][]= 'icon_pin.gif';      $src["order"][]  ='2';  $src["string_pl"][]= 'Opis złącza';
...itd...


przechowywac je tak:

Kod
$x = array();
$x["string_en"] = 'Datasheet';
$x["src"] = 'icon_manual.gif';
$x["order"] ='0';
$x["string_pl"] = 'Karta katalogowa';
$src[] = $x;


$x = array();
$x["string_en"] = 'Manual';
$x["src"] = 'icon_manual.gif';
$x["order"] ='1';  
$x["string_pl"] = 'Dokumentacja';
$src[] = $x;


$x = array();
$x["string_en"] = 'PIN Assignment';    
$x["src"] = 'icon_pin.gif';    
$x["order"] ='2';
$x["string_pl"] = 'Opis złącza';  
$src[] = $x;

....itd


wtedy kazda komorka tablicy $src to jeden wiersz.
Jak bedziesz tak przechowywac to mozesz sobie napisac funkcje porownójącą i zastosowac funkcje usort (patrz: manual PHP)
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.