PHP-lab03数组

PHP-lab03数组


(1)根据自己对数组的了解,请定义一个3行4列的二维数组,数据自拟,并使用恰当的方法遍历数组所有数据并输出。
参考:

<?php

$matrix = array(
    array(1, 2, 3, 4),
    array(5, 6, 7, 8),
    array(9, 10, 11, 12)
);

for ($i = 0; $i < count($matrix); $i++) {
    for ($j = 0; $j < count($matrix[$i]); $j++) {
        echo $matrix[$i][$j] . " ";
    }
}
?>

(2)已有成绩数组,如下所示。成绩数组$scores:

$scores = array(75,68,100,85,70,88,86,90,92,78,65,98,86);

请根据成绩数组设计程序,创建一个新的成绩分组数组,每个成绩段作为数组的一个元素,成绩分组数组$scores_group,对成绩进行分组,使得处于同一分数段的成绩集合在一起,如下图所示。
示例
参考:

<?php
$scores = array(75, 68, 100, 85, 70, 88, 86, 90, 92, 78, 65, 98, 86);

$score_ranges = array(
    "group70" => array(),
    "group60" => array(),
    "group100" => array(),
    "group80" => array(),
    "group90" => array()
);

foreach ($scores as $score) {
    if ($score >= 60 && $score <= 69) {
        $score_ranges["group60"][] = $score;
    } elseif ($score >= 70 && $score <= 79) {
        $score_ranges["group70"][] = $score;
    } elseif ($score >= 80 && $score <= 89) {
        $score_ranges["group80"][] = $score;
    } elseif ($score >= 90 && $score <= 99) {
        $score_ranges["group90"][] = $score;
    } elseif ($score = 100) {
        $score_ranges["group100"][] = $score;
    }
}

// php_eol换行
echo "array(size=" . count($score_ranges) . ")" . PHP_EOL;
foreach ($score_ranges as $group => $scores_in_group) {
    echo " '{$group}' =>" . PHP_EOL;
    echo "   array(size=" . count($scores_in_group) . ")" . PHP_EOL;
    foreach ($scores_in_group as $index => $score) {
        echo "      {$index} => int {$score}" . PHP_EOL;
    }
}
?>

(3)已有$names二维数组,设计程序遍历该数组,打印出其中所有的数据字符串。

$str= array(
    array("Billy","Peter","Steve"),
    "Tim",
    "girls"=>array("Mary","Alice","Jane"),
    array('hello',"world"),
    "Are you OK?"
);

打印结果示例:
在这里插入图片描述
参考:

<?php
$names = array(
    array("Billy", "Peter", "Steve"),
    "Tim",
    "girls" => array("Mary", "Alice", "Jane"),
    array('hello', "world"),
    "Are you OK?"
);

foreach ($names as $key => $value) {
    if (is_array($value)) {
        echo implode(' ', $value) . "\n"; 
    } else {
        echo $value . "\n";
    }
}
?>

(4)综合练习:
根据以下商品信息表格,设计合理的数组保存数据,并在页面中显示这些商品信息。
商品名 商品价格 商品图片
iPhone 6 Plus 6088 i6p.jpg
Galaxy S5 3299 galaxys5.jpg
Moto X 2999 motox.jpg
MX 4 Pro 2199 mx4pro.jpg
Mate 7 3299 mate7.jpg
参考:

<?php
$products = array(
    "iPhone 6 Plus" => array(
        "price" => 6088,
        "image" => "i6p.jpg"
    ),
    "Galaxy S5" => array(
        "price" => 3299,
        "image" => "galaxys5.jpg"
    ),
    "Moto X" => array(
        "price" => 2999,
        "image" => "motox.jpg"
    ),
    "MX 4 Pro" => array(
        "price" => 2199,
        "image" => "mx4pro.jpg"
    ),
    "Mate 7" => array(
        "price" => 3299,
        "image" => "mate7.jpg"
    )
);
?>

<!DOCTYPE html>
<html>
<head>
    <title>商品信息表格</title>
</head>
<body>
<table border="1">
    <tr>
        <th>商品名</th>
        <th>商品价格</th>
        <th>商品图片</th>
    </tr>
    <?php foreach ($products as $productName => $productInfo): ?>
        <tr>
            <td><?= $productName ?></td>
            <td><?= $productInfo['price'] ?></td>
            <td><img src="<?= $productInfo['image'] ?>" alt="<?= $productName ?>"></td>
        </tr>
    <?php endforeach; ?>
</table>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值