Загрузка данных


Давай исправим все шаги так, чтобы код везде был чистым, рабочим и рассчитанным на веб-окружение (браузер), без конфликтов с символами перевода строк (\n), чтобы у тебя больше не было никаких ошибок.
Вот исправленный и полностью рабочий код по всем шагам:
Шаг 0. Создание героя
<?php
// === ТВОЙ ГЕРОЙ ===
$heroName = "Артрог";
$heroClass = "Воин";
$heroLevel = 5;
$heroHp = 120;
$heroGold = 350;

echo "Герой: " . $heroName . "<br>";
echo "Класс: " . $heroClass . "<br>";
echo "Уровень: " . $heroLevel . "<br>";
echo "Здоровье: " . $heroHp . "<br>";
echo "Золото: " . $heroGold . "<br>";
?>

Шаг 1. Инвентарь как индексированный массив
<?php
// ... код героя из Шага 0 ...

// === ИНВЕНТАРЬ: список названий ===
$inventory = [
    "Железный меч",
    "Деревянный щит",
    "Зелье здоровья",
    "Кошель с золотом",
    "Карта подземелья"
];

echo "Предметы в инвентаре:<br>";
echo $inventory[0] . "<br>";
echo $inventory[1] . "<br>";
echo $inventory[2] . "<br>";
echo "Всего предметов: " . count($inventory) . "<br>";
?>

Шаг 2. Один предмет как ассоциативный массив
<?php
// ... код героя и инвентаря ...

// === ОДИН ПРЕДМЕТ с характеристиками ===
$sword = [
    'name'      => 'Железный меч',
    'type'      => 'weapon',
    'damage'    => 15,
    'price'     => 120,
    'weight'    => 3.5,
    'isEquipped'=> true,
];

echo "Название: " . $sword['name'] . "<br>";
echo "Тип: " . $sword['type'] . "<br>";
echo "Урон: " . $sword['damage'] . "<br>";
echo "Цена: " . $sword['price'] . " золота<br>";
echo "Вес: " . $sword['weight'] . " кг<br>";
echo "Экипирован: " . ($sword['isEquipped'] ? 'да' : 'нет') . "<br>";
?>

Шаг 3. Полный инвентарь — массив массивов
<?php
$inventory = [
    [
        'name'      => 'Железный меч',
        'type'      => 'weapon',
        'damage'    => 15,
        'price'     => 120,
        'weight'    => 3.5,
        'isEquipped'=> true,
        'rarity'    => 'common',
    ],
    [
        'name'      => 'Деревянный щит',
        'type'      => 'armor',
        'damage'    => 0,
        'defense'   => 8,
        'price'     => 80,
        'weight'    => 4.0,
        'isEquipped'=> true,
        'rarity'    => 'common',
    ],
    [
        'name'      => 'Зелье здоровья',
        'type'      => 'consumable',
        'damage'    => 0,
        'heal'      => 50,
        'price'     => 25,
        'weight'    => 0.3,
        'isEquipped'=> false,
        'rarity'    => 'common',
    ],
    [
        'name'      => 'Кольцо огня',
        'type'      => 'armor',
        'damage'    => 5,
        'defense'   => 2,
        'price'     => 500,
        'weight'    => 0.1,
        'isEquipped'=> false,
        'rarity'    => 'rare',
    ],
    [
        'name'      => 'Карта подземелья',
        'type'      => 'quest',
        'damage'    => 0,
        'price'     => 0,
        'weight'    => 0.1,
        'isEquipped'=> false,
        'rarity'    => 'epic',
    ]
];

echo "Инвентарь создан. Предметов: " . count($inventory) . "<br>";
echo "Первый предмет: " . $inventory[0]['name'] . "<br>";
echo "Цена последнего: " . $inventory[4]['price'] . "<br>";
?>

Шаг 4. Перебор инвентаря через foreach
<?php
echo "=== ИНВЕНТАРЬ ГЕРОЯ ===<br><br>";

foreach ($inventory as $item) {
    echo "• " . $item['name'] . "<br>";
    echo "Тип: " . $item['type'] . "<br>";
    echo "Цена: " . $item['price'] . " золота<br>";
    echo "Вес: " . $item['weight'] . " кг<br>";
    echo "Редкость: " . $item['rarity'] . "<br><br>";
}
?>

Шаг 5. foreach с ключом
<?php
echo "=== ИНВЕНТАРЬ С НОМЕРАМИ ===<br><br>";

foreach ($inventory as $index => $item) {
    $number = $index + 1;
    echo "[$number] " . $item['name'] . " (" . $item['rarity'] . ")<br>";
}
?>

Шаг 6. Фильтрация — только экипированные предметы
<?php
echo "=== ЭКИПИРОВАННЫЕ ПРЕДМЕТЫ ===<br>";

$equippedCount = 0;
foreach ($inventory as $item) {
    if ($item['isEquipped'] === true) {
        echo "✓ " . $item['name'] . "<br>";
        $equippedCount++;
    }
}

echo "<br>Всего экипировано: $equippedCount<br>";
?>

Шаг 7. Подсчёт статистики
<?php
echo "=== СТАТИСТИКА ИНВЕНТАРЯ ===<br><br>";

$totalPrice = 0;
$totalWeight = 0;
$types = [];

foreach ($inventory as $item) {
    $totalPrice += $item['price'];
    $totalWeight += $item['weight'];

    $type = $item['type'];
    if (!isset($types[$type])) {
        $types[$type] = 0;
    }
    $types[$type]++;
}

echo "Предметов всего: " . count($inventory) . "<br>";
echo "<br>По типам:<br>";
foreach ($types as $type => $count) {
    echo " • $type: $count шт.<br>";
}
?>

Шаг 8 и 9. Финальный HTML-код
<?php
$heroName = "Артрог";
$heroClass = "Воин";
$heroLevel = 5;
$heroHp = 120;
$heroGold = 350;

$inventory = [
    [
        'name'      => 'Железный меч',
        'type'      => 'weapon',
        'damage'    => 15,
        'price'     => 120,
        'weight'    => 3.5,
        'isEquipped'=> true,
        'rarity'    => 'common',
    ],
    [
        'name'      => 'Деревянный щит',
        'type'      => 'armor',
        'damage'    => 0,
        'defense'   => 8,
        'price'     => 80,
        'weight'    => 4.0,
        'isEquipped'=> true,
        'rarity'    => 'common',
    ],
    [
        'name'      => 'Зелье здоровья',
        'type'      => 'consumable',
        'damage'    => 0,
        'heal'      => 50,
        'price'     => 25,
        'weight'    => 0.3,
        'isEquipped'=> false,
        'rarity'    => 'common',
    ],
    [
        'name'      => 'Кольцо огня',
        'type'      => 'armor',
        'damage'    => 5,
        'defense'   => 2,
        'price'     => 500,
        'weight'    => 0.1,
        'isEquipped'=> false,
        'rarity'    => 'rare',
    ],
    [
        'name'      => 'Карта подземелья',
        'type'      => 'quest',
        'damage'    => 0,
        'price'     => 0,
        'weight'    => 0.1,
        'isEquipped'=> false,
        'rarity'    => 'epic',
    ]
];

$totalPrice = 0;
$totalWeight = 0;
$types = [];

foreach ($inventory as $item) {
    $totalPrice += $item['price'];
    $totalWeight += $item['weight'];
    
    $type = $item['type'];
    if (!isset($types[$type])) {
        $types[$type] = 0;
    }
    $types[$type]++;
}
?>
<!DOCTYPE html>
<html lang="ru">
<head>
    <meta charset="UTF-8">
    <title>Инвентарь - <?php echo $heroName; ?></title>
    <style>
        body { font-family: sans-serif; background: #1a1a1a; color: #fff; padding: 20px; }
        .hero-card { background: #2a2a2a; padding: 20px; border-radius: 8px; max-width: 400px; }
        .item { background: #333; margin: 10px 0; padding: 10px; border-radius: 4px; border-left: 4px solid #777; }
        .equipped { border-left-color: #4ecca3; }
        .rarity-common { color: #aaa; }
        .rarity-rare { color: #3498db; }
        .rarity-epic { color: #9b59b6; }
        .stats { margin-top: 20px; border-top: 1px solid #444; padding-top: 10px; }
    </style>
</head>
<body>
    <div class="hero-card">
        <h1><?php echo htmlspecialchars($heroName); ?></h1>
        <p><b>Класс:</b> <?php echo $heroClass; ?> | <b>Уровень:</b> <?php echo $heroLevel; ?></p>
        <p><b>Здоровье:</b> <?php echo $heroHp; ?> | <b>Золото:</b> <?php echo $heroGold; ?></p>

        <h2>Инвентарь (<?php echo count($inventory); ?> предметов)</h2>

        <?php foreach ($inventory as $item): ?>
            <div class="item <?php echo $item['isEquipped'] ? 'equipped' : ''; ?>">
                <b class="rarity-<?php echo $item['rarity']; ?>">
                    <?php echo htmlspecialchars($item['name']); ?>
                </b>
                <br>
                Тип: <?php echo $item['type']; ?> | 
                Цена: <?php echo $item['price']; ?> | 
                Вес: <?php echo $item['weight']; ?> кг
                <?php if ($item['isEquipped']): ?>
                    <span style="color: #4ecca3;">✓ экипировано</span>
                <?php endif; ?>
            </div>
        <?php endforeach; ?>

        <div class="stats">
            <b>Общая стоимость:</b> <?php echo $totalPrice; ?> золота<br>
            <b>Общий вес:</b> <?php echo round($totalWeight, 2); ?> кг
        </div>
    </div>
</body>
</html>