Q:

Why doesn't my decrementing while loop break?

I have got this code.
I am using break, but loop is not stopping.
$Hero = array(
        'atak'  => 100,
        'zycie' => 1000
    );
$Potwor = array(
        'atak'  => 100,
        'zycie' => 500
    );

$BattleLog = array();
while(true) {
    $kogo_ruch = rand(1, 2);
    if($kogo_ruch == 1) {
        $Hero['atak'] -= $Potwor['zycie'];
    }else{
        $Potwor['atak'] -= $Hero['zycie'];
    }

    if($Potwor['zycie'] <= 0){
        break;
    }elseif($Hero['zycie'] <=0 ){
        break;
    }
}

A:

I don't want to miss this chance to show you some more advanced techniques that will simplify your code block and eliminate some if statements.
By packaging your two combatants into a single "fighters" array where the first fighter (Hero) is element [0] and the monster (Potwor) is element [1], you can refer to each using simple arithmetic.
As far as your original code, it doesn't make sense to write breaks at the end of your loop.  The correct placement for your conditions is directly in your while statement as enpaul mentioned.
Notice that I have changed the rand() range from 1-2 to 0-1 for simple toggling between the two values in the damage calculation line.
To target the opponent in each round, I am using 1-$losowy.  I find this to be the most intuitive/elementary way to toggle the value.  However, there are other techniques including a method that uses a bitwise operator (it is the fastest performing way to do it, but the least intuitive).
Code: (Demo)
$Wojownicy=[
    ['zycie'=>1000,'atak'=>100],  // Bohater(Hero) : life points , attack points
    ['zycie'=>500,'atak'=>100]    // Potwor(Monster) : life points , attack points
];

while($Wojownicy[0]['zycie']>0 && $Wojownicy[1]['zycie']>0){
    $losowy=rand(0,1);  // identify attacker
    $Wojownicy[1-$losowy]['zycie']-=$Wojownicy[$losowy]['atak'];  // subract attack from opponent
    echo "Hero={$Wojownicy[0]['zycie']} -vs- Monster={$Wojownicy[1]['zycie']}\n";  // display each round
}
// Spoiler Alert: The Hero wins almost every time!

An Unlikely Result:
Hero=900 -vs- Monster=500
Hero=900 -vs- Monster=400
Hero=800 -vs- Monster=400
Hero=700 -vs- Monster=400
Hero=600 -vs- Monster=400
Hero=500 -vs- Monster=400
Hero=400 -vs- Monster=400
Hero=300 -vs- Monster=400
Hero=200 -vs- Monster=400
Hero=100 -vs- Monster=400
Hero=100 -vs- Monster=300
Hero=100 -vs- Monster=200
Hero=100 -vs- Monster=100
Hero=0 -vs- Monster=100

