Blogger Information
Blog 61
fans 0
comment 0
visits 53917
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
使用foreach/if替代语法循环遍历二维数组、模拟员工管理系统—2019年2月21日
笑颜常开的博客
Original
1360 people have browsed it

1、foreach循环遍历二维数组

       foreach 语句为数组或对象集合中的每个元素重复一个嵌入语句组。foreach 语句用于循环访问集合以获取所需信息,但不应用于更改集合内容以避免产生不可预知的副作用。

实例

<?php
$title = "员工名单";
?>
<!DOCTYPE html>
   <html lang="en">
<head>
   <meta charset="utf-8">
   <title><?php echo $title; ?></title>
</head>
<body>
<?php
$arr = array(
     ['id'=>1,'name'=>'张三','sex'=>'男','age'=>'22'],
['id'=>2,'name'=>'李四','sex'=>'女','age'=>'33'],
['id'=>3,'name'=>'王五','sex'=>'男','age'=>'24'],
['id'=>4,'name'=>'陈六','sex'=>'女','age'=>'31']
 );
?>
<table border="1">
   <tr><td>id</td><td>姓名</td><td>性别</td><td>年龄</td></tr>
<?php
$data = '';
foreach($arr as $array){
$data .='<tr>';
$data .= '<td>'.$array['id'].'</td>';
$data .= '<td>'.$array['name'].'</td>';
$data .= '<td>'.$array['sex'].'</td>';
$data .= '<td>'.$array['age'].'</td>';
$data .= '</tr>';
}
echo $data;
?>
</table>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行结果

QQ图片20190317195855.png

2、不使用大括号的foreach循环输出(结合if语句)

实例

<?php
$title = "员工名单";
?>
<!DOCTYPE html>
<html lang="en">
<head>
   <meta charset="utf-8">
   <title><?php echo $title; ?></title>
</head>
<body>
<?php
$arr = array(
   ['id'=>1,'name'=>'张三','sex'=>'男','age'=>'22'],
['id'=>2,'name'=>'李四','sex'=>'女','age'=>'33'],
['id'=>3,'name'=>'王五','sex'=>'男','age'=>'24'],
['id'=>4,'name'=>'陈六','sex'=>'女','age'=>'31']
);
?>
<table border="1">
   <tr><td>id</td><td>姓名</td><td>性别</td><td>年龄</td></tr>
<?php
   foreach($arr as $array):
?>
<tr><td><?=$array['id'];?></td><td><?=$array['name'];?></td><td><?=$array['sex'] ? '男':'女'; ?>
</td><td><?=$array['age'];?></td></tr>
<?php
   endforeach;
?>
</table>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行结果

QQ图片20190317195855.png

3.员工管理系统

(1)index.php中的内容

实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>员工管理系统</title>
    <style>
        /*样式重置*/
        h2, p, ul {
            padding: 0;
            margin: 0;
        }

        /*头部样式*/
        .header {
            height: 60px;
            /*background-color: lightblue;*/
            border-bottom: 1px solid #333;
            line-height: 60px;
        }
        .header .content {
            width: 1000px;
            /*background-color: lightgray;*/
            overflow: hidden;
            margin: 0 auto;
        }

        .header .content h2 {
            float:left
        }

        .header .content p {
            float:right;
        }

        /*主体样式*/
        .main {
            width: 1000px;
            min-height: 650px;
            /*background-color: lightcyan;*/
            margin: 0 auto;
            position: relative;
        }

        .main .left {
            width: 120px;
            min-height: inherit;
            /*background-color: lightgreen;*/
            border-right: 1px solid #333;
            position: absolute;
            left: 0;
            top: 0;
        }

        .main .right {
            width: 880px;
            min-height: inherit;
            /*background-color: lightyellow;*/
            position: absolute;
            left: 121px;
            top: 0;
        }

        /*左侧菜单样式*/
        .main .left ul {
            position: absolute;
            left: 30px;
            top: 50px;
        }
        .main .left li {
            list-style-type: none;
            line-height: 50px;
        }
        .main .left li a {
            text-decoration-line: none;
        }

        .main .left li a:hover {
            text-decoration-line: underline;
            color: red;
        }

        /*右侧工作区样式*/
        .main .right iframe {
            width: 880px;
            min-height: 650px;
            border: none;
        }

    </style>
</head>
<body>
    <!--头部-->
    <div class="header">
        <div class="content">
            <h2>员工管理系统</h2>
            <p>管理员: admin  |  <a href="">退出</a></p>
        </div>
    </div>

    <!--中部-->
    <div class="main">
        <!--左侧菜单-->
        <div class="left">
            <ul>
                <li><a href="staff_list.php" target="workspace">员工管理</a></li>
                <li><a href="system.php" target="workspace">系统设置</a></li>
                <li><a href="user_list.php" target="workspace">用户设置</a></li>
            </ul>
        </div>
        <!-- a标签的target属性和iframe的name属性要相同-->
        <!--右侧内容-->
        <div class="right">
            <iframe src="staff_list.php" name="workspace"></iframe>
            <p style="text-align: center;margin-top: -100px;">php中文网 © 版权所有 (2017-2020)</p>
        </div>
    </div>

</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

(2)staff_list.php中的内容

实例

<?php

// 员工信息
$staffs = [
    ['id'=>1, 'name'=>'候亮平', 'age'=>30, 'sex'=>1, 'hiredate'=> time(), 'mobile'=>'13899776655'],
    ['id'=>2, 'name'=>'赵瑞龙', 'age'=>40, 'sex'=>1, 'hiredate'=> time(), 'mobile'=>'13576543210'],
    ['id'=>3, 'name'=>'李达康', 'age'=>50, 'sex'=>1, 'hiredate'=> time(), 'mobile'=>'18955135522'],
    ['id'=>4, 'name'=>'祁同伟', 'age'=>45, 'sex'=>1, 'hiredate'=> time(), 'mobile'=>'13388888110'],
    ['id'=>5, 'name'=>'高小琴', 'age'=>30, 'sex'=>0, 'hiredate'=> time(), 'mobile'=>'15798986666'],
];

// 标题
$title = '员工信息表';

// 表格标题
$tableTitle = $title;

// 员工数量
$total = count($staffs);
?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title><?php echo $title; ?></title>
    <style>
        table,th,td {
            border: 1px solid #666;
            padding: 8px;
        }
        table {
            border-collapse: collapse;
            width: 80%;
            text-align: center;
            margin: 30px auto;
        }
        thead tr:first-of-type {
            background-color: lightblue;
        }

        tbody tr:hover {
            background-color: #efefef;
        }

        table > caption {
            font-size: 1.2rem;
            margin-bottom: 15px;
        }
        table + p {
            text-align: center;
        }

        button:hover {
            cursor: pointer;
            background-color: lightblue;
        }

        /*添加按钮给个特殊样式*/
        #add {
            height: 25px;
            width: 90px;
            position: absolute;
            left: 650px;
            top: 40px;
        }

    </style>
</head>
<body>
<button onclick="location.href='#'" id="add">添加</button>

<table>
    <caption>
        <?php
        echo '<span style="color:red">' . $tableTitle . '</span>';
        ?>
    </caption>
    <thead>
    <tr>
        <th>编号</th>
        <th>姓名</th>
        <th>年龄</th>
        <th>性别</th>
        <th>手机</th>
        <td>入职</td>
        <th>操作</th>
    </tr>
    </thead>
    <tbody>

    <!--foreach()替代语法-->
    <?php foreach($staffs as $staff) : ?>
        <tr>

            <td><?php echo $staff['id']; ?></td>
            <td><?php echo $staff['name']; ?></td>


            <td><?php echo $staff['age']; ?></td>

            <!--if()替代语法-->
            <td>
                <?php if($staff['sex'] == 1) : ?>
                    男
                <?php else: ?>
                    女
                <?php endif; ?>
            </td>


            <!--如果只是简单的输出变量可以使用php短标签语法-->
            <td><?=$staff['mobile']?></td>

            <td>
                <?php
                echo date('Y/m/d',$staff['hiredate']);
                ?>
            </td>

            <td>
                <button onclick="location.href='http://baidu.com'">编辑</button>
                <button onclick="location.href='#'"><span style="color:red">删除</span></button>
            </td>

        </tr>
    <?php endforeach;?>

    </tbody>
</table>
<p>总计:
    <?php echo $total;  ?>
    人</p>
</body>
</html>

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行结果

QQ图片20190317200611.png

       a标签的target属性值和iframe的name属性值要相同。这样,用户在点击a标签的时候,iframe内联框架(行内框架)和a标签才会产生关联,用户才能访问到相应内容。

Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post