Autor Zpráva
jataky
Profil
Zdravím,

mám takto naplněná pole.

$pozdrav=array("ahoj","pa","cus");
$koho=array("Tom", "Karel", "Pavel","Standa");
$vse = array("1"=>"2","1"=>"3","1"=>"4","2"=>"2");
$pozdravkoho = (Array (
1 => Array (1 => "Ahoj - Tom",3 => "Ahoj - Pavel",4 => "Ahoj Standa" ), 
2 => Array ( 2 => "Pa - Karl" ,3 => "pa - Pavel" ), 
3 => Array ( 1 => "Cus - Tom" ,4 => "cus - Standa" )));

... a chtěl bych z toho dostat tento tvar tabulky:
------------------------------------------------------------
|            |ahoj          |pa            |cus            |
------------------------------------------------------------
|Tom         |ahoj - Tom    |              |cus - tom      |
------------------------------------------------------------
|Karl        |              |pa - Karl     |               |
------------------------------------------------------------
|Pavel       |Ahoj -Pavel   |pa - Pavel    |               |
------------------------------------------------------------
|Standa      |Ahoj Standa   |              |cus -standa    |
------------------------------------------------------------
mněl jsem něco takového:
echo "<table><th></th>";
for ($q=0 ; $q< count($pozdrav) ; $q++){
    echo "<th>".$pozdrav[$q]."</th>";}
        for ($w=0 ; $w< count($koho) ; $w++){
            echo "<tr><td>".$koho[$w]."</td>";
                    foreach ($pozdravkoho as $pozdrav1 => $po)
                if ($q=$pozdrav1){
                    foreach ($po as $datuj => $da)
                        if ($w=$datuj){ echo "<td>".$pozdravkoho[$q][$w]."</td>";
                
                
                }echo "</tr>";}
}
echo "</table>\n";

... ale někde mám chybu. Nevypíše mi to do tvaru výše tabulky.
WertriK
Profil
Poradím ti jak bych na to šel já, ale kód psát nebudu, už jsem na to starý.

První řádek je jen výpis pole pozdravů. To uděláš jedním foreachem.
Další řádky jsou dle jmen. Takže další foreach, kde procházíš jména, na začátku otevřeš řádek <tr> na konci ho ukončíš </tr>.
Mezi tím dáš další foreach, kde budeš procházet opět ty pozdravy. Podle indexů těch dvou cyklů budeš kontrolovat existenci hodnoty v poli "pozdravkoho" a podle toho vypíšeš prázdnou buňku nebo buňku s hodnotou z pole.
jataky
Profil
WertriK:

... pořád mám někde chybu.
echo "<table><th></th>\n \r";
    for ($q=0 ; $q< count($pozdrav) ; $q++){
        echo "<th>".$pozdrav[$q]."</th>\n \r";}//dopsaný řádek
            
                foreach ($koho as $idkoho => $kdo){
                    echo "<tr><td>".$kdo."</td>";                                
                    
                        foreach ($pozdrav as $idpozdrav =>$nazev ){
                            if (isset($pozdravkoho[$idpozdrav][$idkoho])){
                            
                                echo "<td>".$pozdravkoho[$idpozdrav][$idkoho]."</td>\n";}
                            else {echo"<td>není záznam</td>";}}
                
                echo "</tr>\n \r";}
            
echo "</table>";
jataky
Profil
jataky:
... už je to OK. Problém byl v číslování v polích.

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: