Autor Zpráva
ThomasT
Profil *
Ahoj,

narazil jsem na jednu drobnost, které moc nerozumím. Běžně používám php funkci substr(), ale teď jsem narazil na situaci, kdy mi nefunguje v cyklu foreach
foreach($tmp_multi_type as $category){
  $tmp_IN[$category] = "";
  foreach($this->$category as $value){
    $tmp_IN[$category] .= $value.", ";
  }
  echo $tmp_IN[$category]."<br>";
  $tmp_IN[$category] = substr($tmp_IN[$category], 0, -1); 
  echo $tmp_IN[$category]."<br>";
}    
        
echo $tmp_IN[$category]."<br>";
$tmp_IN[$category] = substr($tmp_IN[$category], 0, -1); 
echo $tmp_IN[$category]."<br>";

Výpisy čtyř ech vypadají takto:
echo #1 -> czech, english, french, slovak,
echo #2 -> czech, english, french, slovak,
echo #3 -> czech, english, french, slovak,
echo #4 -> czech, english, french, slovak

Proč funkce substr() funguje až mimo b]foreach[/b]?
Děkuji za rady.
T.
Str4wberry
Profil
Není to přímo odpověď na otázku, ale co použít implode?

$pole = array("jedna", "dva", "tri");
echo implode(", ", $pole);
ThomasT
Profil *
:-) proč to dělat jednoduše, když to složitě co?
Jj, implode je řešení, ani mi to nenapadlo.
Díky

PS: Ale stejně by mě zajímalo, proč ve foreach nefunguje substr() (nebo alespoň v toto případě).
Str4wberry
Profil
To je vcelku prosté. Oddělujete poslední znak, ale potřebujete oddělit poslední dva znaky, protože ten poslední je mezera, zatímco čárka je předposlední (tak činí až druhé použití substru na řádku 12).

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

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