Autor Zpráva
tabler
Profil *
Dobrý den,
řeším následující a moc si s tím nevím rady.

Mám 2 pole:
$nazvy = array ("barva modra", "barva cervena", "barva ruzova", "barva fialova", "barva medova");
$nazvy = array ("4100", "4990", "4790", "4790", "4990");

a potřebuji dosahnout toho, abych vypsal:
barva modra: 4100 Kč
barva cervena, barva medova: 4990 Kč
barva ruzova, barva fialova: 4790 Kč

má někdo nápad, jak to provést?
Taps
Profil
tabler:
proměnná $nazvy musí byt v obou případech zachovana, nebo je možné např. použít
<?
$nazvy_barva;
$nazvy_cena;
?>
tabler
Profil *
Díky za odpověď. Udělal jsem nahoře chybu:
to druhé pole se samozřejmě musí jmenovat jinak.
Spíše mi šlo o to, jak vypsat ty cenové skupiny. Jak najít stejné a různé ceny a vypsat je.
Taps
Profil
tabler:
data získaváš z databáze ? Ideální by bylo dostat níže uvedené vícerozměrné pole
<?
$cenik=array(
            4100 => array('modra'),
            4990 => array('cervena','medova'),
            4790 => array('růžova','fialova')
            );
?>
Luky
Profil
Nebo pokud opravdu trváš na řazení, tak se dá použít i něco takového...
  $colors = array ("barva modra", "barva cervena", "barva ruzova", "barva fialova", "barva medova"); 
  $money = array ("4100", "4990", "4790", "4790", "4990");            
  
  asort($money);
  $old_value = $money[0];
  
  foreach($money as $key => $value){
      if ($old_value != $value) echo $colors[$key].", "; 
      else echo $colors[$key]." = ".$value."<br />";
      $old_value = $value;
  }
breeta
Profil
Potřebuješ to podle něčeho přiřadit, takhle to dohromady nedáš ...

$nameColors[1]= array ( 'name' => 'Modrá');
$nameColors[2]= array ( 'name' => 'Červená');    

 
$colors[]= array ('idName' => 1,  'price' => 4100 );
$colors[]= array ('idName' => 1,  'price' => 5600 ); 
$colors[]= array ('idName' => 2,  'price' => 4100 );  
 

  $colorProduct = [];
  
  foreach ($colors  as $c) {  
  if(!array_key_exists($c['price'], $colorProduct))   {  
   $colorProduct[$c['price']] =  array(
      'name'=> $nameColors[$c['idName']]['name'], 
      'price'=> $c['price'] );   
   }   else {   
$colorProduct[$c['price']] =  array(
     'name'=> $colorProduct[$c['price']]['name'].', '.$nameColors[$c['idName']]['name'], 
     'price'=> $c['price']);    
 }  
  
  }
 
 var_dump($colorProduct);
  
  
  /**
   *array (size=2)
  4100 => 
    array (size=2)
      'name' => string 'Modrá, Červená' (length=17)
      'price' => int 4100
  5600 => 
    array (size=2)
      'name' => string 'Modrá' (length=6)
      'price' => int 5600  
   **/

PS: pokud si to ale hodíš do nějaké databáze určitě bude nějaký způsob jak tyhle dat získat rovnou ...
tabler
Profil *
No, tak mi to nějak nefunguje...

Pravda, že pokud si to vyzkouším na tom poli, které jsem napsal nahoře, tak to funguje, ale pokud to udělám z té db, tak už ne.
Takže ano, ta data mám v db.

Jen mi chybí ten nápad, jak to provést.


Ona praxe bude taková, že 5 barev ze sedmi bude mít stejnou cenu a pak 2 barvy budou mít jinou cenu.
Takže nejlepší by to bylo tak, že bude:

Cena 4 790 Kč
Barva Platinová: 4990 Kč
Barva Fialová 5 190 Kč
breeta
Profil
tabler:
No, tak mi to nějak nefunguje...

Myslíš že ti takhle pomůžu :-) napiš dump z tvojí databáze jak vybíráš data a uprav si to ...
ts_istudio
Profil
tabler:
Pravda, že pokud si to vyzkouším na tom poli, které jsem napsal nahoře, tak to funguje, ale pokud to udělám z té db, tak už ne.
Takže ano, ta data mám v db.

V tom případě nemáš důvod laborovat s nějakým polem. Ukaž kód, kterým to z databáze získáváš.
tabler
Profil *
$dotaz_na_podrobnosti = MySQL_Query("SELECT CenaInternet, Nazev FROM bases WHERE Id_Pohoda='$zaznamkc[Kod_Pohoda]'");
$odpoved_na_podrobnosti = MySQL_Fetch_Array($dotaz_na_podrobnosti);

Na tento dotaz dostanu právě jednu odpověď.
V případě ceny je to string(4) "4078"
V případě názvu je to opět string.

Dále s tím právádím toto a to jak v případě ceny, tak názvu. Dále to již znáte.
$ceny_p[]=$odpoved_na_kod["CenaInternet"];

Děkuji za nápady


$ceny_p[]=$odpoved_na_podrobnosti["CenaInternet"]; upsal jsem se
Taps
Profil
tabler:
myslím, že by to šlo řešit jednodušší cestou. Podíval bych se na to přímo na tvém FTP

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: