اینطوری تبدیل به ارباب حلقه ها شو

[short_link]

در PHP، حلقه‌ها برای اجرای مکرر مجموعه‌ای از دستورات استفاده می‌شوند. این حلقه‌ها از ساده‌ترین حالت تا پیچیده‌ترین ترکیب‌ها می‌توانند پیاده‌سازی شوند. در ادامه، انواع حلقه‌ها و مثال‌های مرتبط با آن‌ها توضیح داده شده‌اند.

1. حلقه `while`
این حلقه تا زمانی که شرط صحیح باشد، اجرا می‌شود.

<?php
$count = 1;

while ($count <= 5) {
    echo "Count: $count<br>";
    $count++;
}
?>

توضیح:
– شرط در ابتدای هر دور بررسی می‌شود.
– اگر شرط صحیح باشد، بلوک کد اجرا می‌شود.

2. حلقه `do-while`
این حلقه حداقل یک بار اجرا می‌شود و سپس شرط بررسی می‌شود.

<?php
$count = 1;

do {
    echo "Count: $count<br>";
    $count++;
} while ($count <= 5);
?>

توضیح در مورد کد:
– بلوک کد حداقل یک بار اجرا می‌شود، حتی اگر شرط از ابتدا غلط باشد.

3. حلقه `for`
این حلقه برای اجرای تعداد مشخصی از تکرارها استفاده می‌شود.

<?php
for ($i = 1; $i <= 5; $i++) {
    echo "Iteration: $i<br>";
}
?>

توضیح در مورد کد:
– مقداردهی اولیه، شرط و افزایش/کاهش متغیر در یک خط مشخص می‌شوند.

4. حلقه `foreach`
برای پیمایش آرایه‌ها و کار با مقادیر یا کلیدها استفاده می‌شود.

<?php
$colors = ["Red", "Green", "Blue"];

foreach ($colors as $color) {
    echo "Color: $color<br>";
}
?>

توضیح در مورد کد:
– مقدار هر عنصر آرایه در متغیر `$color` ذخیره شده و کد اجرا می‌شود.

5. ترکیب حلقه‌ها
می‌توانید یک حلقه را داخل حلقه دیگر قرار دهید (Nested Loops).

<?php
for ($i = 1; $i <= 3; $i++) {
    echo "Outer loop iteration $i:<br>";
    for ($j = 1; $j <= 2; $j++) {
        echo "-- Inner loop iteration $j<br>";
    }
}
?>

توضیح در مورد کد:
– حلقه داخلی در هر بار اجرای حلقه بیرونی، چندین بار اجرا می‌شود.

6. استفاده از `break` برای خروج از حلقه
برای متوقف کردن حلقه پیش از پایان شرط.

<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i == 5) {
        break;
    }
    echo "Iteration: $i<br>";
}
?>

توضیح در مورد کد:
– وقتی مقدار `$i` برابر با 5 می‌شود، حلقه متوقف می‌شود.

7. استفاده از `continue` برای رد کردن یک دور از حلقه
برای رد کردن ادامه اجرای حلقه و رفتن به دور بعدی.

<?php
for ($i = 1; $i <= 5; $i++) {
    if ($i == 3) {
        continue;
    }
    echo "Iteration: $i<br>";
}
?>

توضیح در مورد کد:
– وقتی مقدار `$i` برابر با 3 می‌شود، دستور بعد از `continue` اجرا نمی‌شود و به دور بعدی می‌رود.

8. حلقه `foreach` با کلید و مقدار
برای کار با آرایه‌های وابسته به کلید.

<?php
$person = ["name" => "John", "age" => 30, "city" => "New York"];

foreach ($person as $key => $value) {
    echo "$key: $value<br>";
}
?>

توضیح در مورد کد:
– کلید و مقدار در متغیرهای `$key` و `$value` ذخیره می‌شوند.

9. حلقه بی‌نهایت (Infinite Loop)
زمانی که شرط همیشه درست باشد، حلقه تا زمان توقف دستی ادامه پیدا می‌کند.

<?php
$count = 1;

while (true) {
    echo "Count: $count<br>";
    $count++;
    if ($count > 5) {
        break; // جلوگیری از حلقه بی‌نهایت
    }
}
?>

10. حلقه‌های پیچیده با شرایط ترکیبی
ترکیب شرط‌های منطقی در حلقه‌ها.

<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i % 2 == 0 && $i % 3 == 0) {
        echo "Number divisible by 2 and 3: $i<br>";
    }
}
?>

توضیح در مورد کد:
– شرط بررسی می‌کند که عدد همزمان بر 2 و 3 بخش‌پذیر باشد.

نکات مهم:
1. انتخاب حلقه مناسب:
– برای تکرار مشخص از `for` استفاده کنید.
– برای آرایه‌ها `foreach` مناسب است.
– برای شرایط پویا از `while` یا `do-while` استفاده کنید.
2. خوانایی کد: از نام‌گذاری مناسب برای متغیرها و استفاده صحیح از تورفتگی‌ها استفاده کنید.
3. حلقه بی‌نهایت: همیشه شرطی برای جلوگیری از حلقه بی‌نهایت قرار دهید.

در ادامه، مثال‌های بیشتری از انواع حلقه‌ها در PHP ارائه شده است. این مثال‌ها شامل موارد پیچیده‌تر و ترکیبی هستند که در سناریوهای مختلف کاربرد دارند.

1. حلقه `while` با آرایه و شرط ترکیبی
این حلقه یک آرایه را پیمایش می‌کند و شرط‌های ترکیبی را اعمال می‌کند.

<?php
$numbers = [1, 2, 3, 4, 5, 6, 7];
$index = 0;

while ($index < count($numbers)) {
    if ($numbers[$index] % 2 == 0) {
        echo "Even number: {$numbers[$index]}<br>";
    } else {
        echo "Odd number: {$numbers[$index]}<br>";
    }
    $index++;
}
?>

2. حلقه‌های تو در تو برای جدول ضرب
این حلقه تو در تو، یک جدول ضرب ایجاد می‌کند.

<?php
for ($i = 1; $i <= 10; $i++) {
    for ($j = 1; $j <= 10; $j++) {
        echo "$i x $j = " . ($i * $j) . "<br>";
    }
    echo "<hr>";
}
?>

3. حلقه `foreach` با شرط‌های پیچیده
پیمایش یک آرایه وابسته به کلید و اعمال شرط روی مقادیر.

<?php
$students = [
    "John" => 85,
    "Alice" => 92,
    "Bob" => 74,
    "Emma" => 58
];

foreach ($students as $name => $score) {
    if ($score >= 90) {
        echo "$name: Excellent<br>";
    } elseif ($score >= 75) {
        echo "$name: Good<br>";
    } else {
        echo "$name: Needs Improvement<br>";
    }
}
?>

4. حلقه بی‌نهایت برای پردازش داده
یک حلقه بی‌نهایت که از ورودی کاربر استفاده می‌کند.

<?php
while (true) {
    $input = readline("Enter a number (type 'exit' to quit): ");
    if ($input === "exit") {
        break;
    }
    echo "You entered: $input<br>";
}
?>

5. حلقه با استفاده از بازگشت (`continue`)
نمایش اعداد به جز موارد خاص.

<?php
for ($i = 1; $i <= 10; $i++) {
    if ($i % 3 == 0) {
        continue; // از اعداد مضرب 3 عبور می‌کند
    }
    echo "Number: $i<br>";
}
?>

6. پیمایش چندین آرایه با یک حلقه تو در تو
حلقه برای پیمایش چند آرایه همزمان.

<?php
$names = ["John", "Alice", "Bob"];
$scores = [85, 92, 74];

for ($i = 0; $i < count($names); $i++) {
    echo "{$names[$i]} scored {$scores[$i]}<br>";
}
?>

7. ایجاد مثلث با استفاده از حلقه
ایجاد یک مثلث ستاره‌ای.

<?php
$rows = 5;

for ($i = 1; $i <= $rows; $i++) {
    for ($j = 1; $j <= $i; $j++) {
        echo "*";
    }
    echo "<br>";
}
?>

8. حلقه `foreach` تو در تو برای آرایه چندبعدی
پیمایش آرایه چندبعدی با استفاده از `foreach`.

<?php
$products = [
    "Electronics" => ["TV", "Laptop", "Phone"],
    "Furniture" => ["Sofa", "Table", "Chair"],
    "Clothing" => ["Shirt", "Pants", "Jacket"]
];

foreach ($products as $category => $items) {
    echo "$category:<br>";
    foreach ($items as $item) {
        echo "- $item<br>";
    }
    echo "<hr>";
}
?>

9. ترکیب حلقه و شرط برای پیدا کردن عدد اول
پیدا کردن اعداد اول بین 1 تا 50.

<?php
for ($i = 2; $i <= 50; $i++) {
    $isPrime = true;
    for ($j = 2; $j <= sqrt($i); $j++) {
        if ($i % $j == 0) {
            $isPrime = false;
            break;
        }
    }
    if ($isPrime) {
        echo "$i is a prime number<br>";
    }
}
?>

10. حلقه‌های ترکیبی برای ساخت الگوهای پیشرفته
ایجاد یک الگوی پیچیده.

<?php
$rows = 5;

for ($i = 1; $i <= $rows; $i++) {
    for ($j = 1; $j <= $rows - $i; $j++) {
        echo "&nbsp;";
    }
    for ($k = 1; $k <= (2 * $i - 1); $k++) {
        echo "*";
    }
    echo "<br>";
}
?>

11. پیمایش فایل با حلقه `while`
خواندن خطوط یک فایل.

<?php
$file = fopen("example.txt", "r");

while (($line = fgets($file)) !== false) {
    echo $line . "<br>";
}

fclose($file);
?>

12. حلقه برای پردازش API با محدودیت تکرار
مثال استفاده از حلقه برای ارسال درخواست‌های API با شرط توقف.

<?php
$requests = 0;
$maxRequests = 5;

while ($requests < $maxRequests) {
    echo "Processing request #" . ($requests + 1) . "<br>";
    $requests++;
    sleep(1); // تاخیر 1 ثانیه‌ای
}
?>

نکات کلیدی:
1. مدیریت پیچیدگی: از نام‌گذاری مناسب متغیرها برای خوانایی بیشتر استفاده کنید.
2. بهینه‌سازی حلقه‌ها: حلقه‌های تو در تو را فقط در صورت نیاز استفاده کنید؛ این نوع حلقه‌ها ممکن است عملکرد را تحت تأثیر قرار دهند.
3. شرایط توقف: همیشه شرایط توقف مناسب را تعریف کنید تا از حلقه‌های بی‌نهایت جلوگیری شود.

در اینجا مثال‌های پیچیده‌تر و کاربردی‌تری از حلقه‌ها در PHP ارائه شده است که شامل سناریوهای پیشرفته و ترکیبی هستند.

1. پیمایش آرایه چندبعدی و مرتب‌سازی مقادیر
این مثال شامل پیمایش آرایه چندبعدی، مرتب‌سازی و چاپ نتایج است.

<?php
$data = [
    ["name" => "John", "score" => 85],
    ["name" => "Alice", "score" => 92],
    ["name" => "Bob", "score" => 74]
];

// مرتب‌سازی آرایه بر اساس امتیاز
usort($data, function ($a, $b) {
    return $b['score'] - $a['score'];
});

// چاپ داده‌ها
foreach ($data as $item) {
    echo "Name: {$item['name']}, Score: {$item['score']}<br>";
}
?>

2. حلقه‌های تو در تو برای حل ماتریس
ضرب دو ماتریس با استفاده از حلقه‌های تو در تو.

<?php
$matrix1 = [
    [1, 2],
    [3, 4]
];
$matrix2 = [
    [5, 6],
    [7, 8]
];

$result = [];

for ($i = 0; $i < count($matrix1); $i++) {
    for ($j = 0; $j < count($matrix2[0]); $j++) {
        $result[$i][$j] = 0;
        for ($k = 0; $k < count($matrix2); $k++) {
            $result[$i][$j] += $matrix1[$i][$k] * $matrix2[$k][$j];
        }
    }
}

// چاپ ماتریس نتیجه
foreach ($result as $row) {
    echo implode(" ", $row) . "<br>";
}
?>

3. ایجاد یک درخت با داده‌های سلسله‌مراتبی
پیمایش داده‌های سلسله‌مراتبی برای ایجاد یک ساختار درختی.

<?php
$data = [
    ["id" => 1, "parent_id" => 0, "name" => "Electronics"],
    ["id" => 2, "parent_id" => 1, "name" => "Laptops"],
    ["id" => 3, "parent_id" => 1, "name" => "Phones"],
    ["id" => 4, "parent_id" => 2, "name" => "Gaming Laptops"],
    ["id" => 5, "parent_id" => 2, "name" => "Business Laptops"]
];

// تابع بازگشتی برای ساخت درخت
function buildTree($data, $parentId = 0) {
    $tree = [];
    foreach ($data as $item) {
        if ($item['parent_id'] == $parentId) {
            $children = buildTree($data, $item['id']);
            if ($children) {
                $item['children'] = $children;
            }
            $tree[] = $item;
        }
    }
    return $tree;
}

// چاپ درخت
function printTree($tree, $level = 0) {
    foreach ($tree as $branch) {
        echo str_repeat("--", $level) . $branch['name'] . "<br>";
        if (!empty($branch['children'])) {
            printTree($branch['children'], $level + 1);
        }
    }
}

$tree = buildTree($data);
printTree($tree);
?>

4. پیمایش فایل CSV و پردازش داده‌ها
خواندن داده‌های یک فایل CSV و انجام پردازش روی آن.

<?php
$file = fopen("data.csv", "r");
$headers = fgetcsv($file);

while (($row = fgetcsv($file)) !== false) {
    $data[] = array_combine($headers, $row);
}

fclose($file);

// نمایش داده‌ها
foreach ($data as $entry) {
    echo "Name: {$entry['Name']}, Age: {$entry['Age']}, City: {$entry['City']}<br>";
}
?>

5. حلقه برای تولید گزارش از داده‌های پویا
ایجاد گزارش از داده‌های یک جدول پایگاه داده (شبیه‌سازی‌شده).

<?php
$records = [
    ["name" => "John", "sales" => 1200],
    ["name" => "Alice", "sales" => 1500],
    ["name" => "Bob", "sales" => 800],
    ["name" => "Emma", "sales" => 1900]
];

// تولید گزارش
$totalSales = 0;
echo "<table border='1'>";
echo "<tr><th>Name</th><th>Sales</th></tr>";

foreach ($records as $record) {
    echo "<tr><td>{$record['name']}</td><td>{$record['sales']}</td></tr>";
    $totalSales += $record['sales'];
}

echo "<tr><td>Total</td><td>$totalSales</td></tr>";
echo "</table>";
?>

6. حلقه برای تجزیه JSON و نمایش داده‌ها
پردازش داده‌های JSON و نمایش نتایج.

<?php
$json = '[
    {"name": "John", "age": 30, "skills": ["PHP", "JavaScript"]},
    {"name": "Alice", "age": 25, "skills": ["Python", "Django"]},
    {"name": "Bob", "age": 35, "skills": ["Java", "Spring"]}
]';

$data = json_decode($json, true);

foreach ($data as $person) {
    echo "Name: {$person['name']}, Age: {$person['age']}<br>";
    echo "Skills: " . implode(", ", $person['skills']) . "<br><br>";
}
?>

7. پردازش فایل‌های یک پوشه با حلقه
لیست کردن و پردازش فایل‌های موجود در یک پوشه.

<?php
$directory = "uploads/";

if (is_dir($directory)) {
    $files = scandir($directory);

    foreach ($files as $file) {
        if ($file !== "." && $file !== "..") {
            echo "Processing file: $file<br>";
        }
    }
} else {
    echo "Directory does not exist.";
}
?>

8. حلقه برای پردازش داده‌های API
ارسال درخواست به یک API و پردازش پاسخ‌ها.

<?php
$urls = [
    "https://api.example.com/data1",
    "https://api.example.com/data2",
    "https://api.example.com/data3"
];

foreach ($urls as $url) {
    $response = file_get_contents($url);
    $data = json_decode($response, true);

    echo "Data from $url:<br>";
    print_r($data);
    echo "<br><br>";
}
?>

9. تولید داده‌های تصادفی و محاسبات
ایجاد لیستی از داده‌های تصادفی و انجام محاسبات.

<?php
$numbers = [];
for ($i = 0; $i < 10; $i++) {
    $numbers[] = rand(1, 100);
}

echo "Generated Numbers: " . implode(", ", $numbers) . "<br>";
echo "Max: " . max($numbers) . "<br>";
echo "Min: " . min($numbers) . "<br>";
echo "Average: " . array_sum($numbers) / count($numbers) . "<br>";
?>

10. تبدیل داده‌های XML به HTML با حلقه
تجزیه XML و نمایش آن به صورت جدول HTML.

<?php
$xml = '
<books>
    <book>
        <title>PHP for Beginners</title>
        <author>John Doe</author>
        <price>29.99</price>
    </book>
    <book>
        <title>Advanced PHP</title>
        <author>Jane Smith</author>
        <price>39.99</price>
    </book>
</books>';

$books = new SimpleXMLElement($xml);

echo "<table border='1'>";
echo "<tr><th>Title</th><th>Author</th><th>Price</th></tr>";

foreach ($books->book as $book) {
    echo "<tr>";
    echo "<td>{$book->title}</td>";
    echo "<td>{$book->author}</td>";
    echo "<td>\${$book->price}</td>";
    echo "</tr>";
}

echo "</table>";
?>
(0) دیدگاه برای این پست ثبت شده
دیدگاه خود را بفرستید
  1. اولین نفری باشید که دیدگاه خود را ثبت می کند!
« یک بار برای همیشه date رو یاد بگیر تصویر یک بار برای همیشه  date  رو یاد بگیر
چطور از فانکشن های ccs استفاده کنیم؟ + ویدئو »
Clicky