加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

回显PHP数组只显示每个值的第一个字母

发布时间:2020-12-13 21:38:37 所属栏目:PHP教程 来源:网络整理
导读:这是一个简单的评级系统.有3个值包含一个百分比,附带说明/名称.我只想显示描述/名称. 出于某种原因,它显示: 一个 ? 一世 这是我的脚本: if(isset($_POST['analyze'])) { // get total value of "Time Management" section for($i = 0; $i 19; $i++) { $tim
这是一个简单的评级系统.有3个值包含一个百分比,附带说明/名称.我只想显示描述/名称.

出于某种原因,它显示:

一个

?

一世

这是我的脚本:

if(isset($_POST['analyze'])) {

    // get total value of "Time Management" section
    for($i = 0; $i < 19; $i++) {
        $time_management_total += $_POST["time_management_Q$i"];
    }


    // get total value of "Attract Clients" section
    for($i = 0; $i < 16; $i++) {
        $attract_clients_total += $_POST["attract_clients_Q$i"];
    }

    // get total value of "Internet Marketing" section
    for($i = 0; $i < 21; $i++) {
        $internet_marketing_total += $_POST["internet_marketing_Q$i"];
    }


    // calculate user's personal "Time Management" score
    $time_management_rating = ($time_management_total / 19) / 5;

    // calculate user's personal "Attract Clients" score
    $attract_clients_rating = ($attract_clients_total / 16) / 5;

    // calculate user's personal "Internet Marketing" score
    $internet_marketing_rating = ($internet_marketing_total / 21) / 5;


    // add user ratings to array
    $user_rating[0] = array('percent' => $time_management_rating,'description' => 'Time Management');
    $user_rating[1] = array('percent' => $attract_clients_rating,'description' => 'Attract Clients');
    $user_rating[2] = array('percent' => $internet_marketing_rating,'description' => 'Internet Marketing');


    // reverse sort the array - highest percentage first
    rsort($user_rating);


    // echo the description
    foreach($user_rating as $category) {
        foreach($category as $description) {
            echo $description[description] . "<br />";
        }
    }
}
?>

解决方法

你必须做:

foreach($user_rating as $category) {
        echo $category['description'] . "<br />";
}

您的代码说明:

你的阵列就像

$user_rating = array(array('percent' => ...,'description' => ...),array(...));

这意味着你有一个二维数组.

当你做foreach($user_rating为$category)时,你正在遍历外部数组.这意味着$category将是一个数组,即数组(‘percent’=> …,’description’=> …).

现在你犯了错误,再次遍历那个数组,这意味着$description将始终是百分比和描述的字符串值.

在PHP中,您可以使用数组表示法访问字符串以获取该位置的字符.由于描述未定义,它可能会解析为0并且您获得第一个字符.

$foo = 'bar';
echo $foo[0];
// echos 'b'

通过添加一些回声,您可以看到,循环中的哪个元素包含哪个值:

$user_rating[0] = array('description' => 'Time Management');
$user_rating[1] = array('description' => 'Attract Clients');
$user_rating[2] = array('description' => 'Internet Marketing');

foreach($user_rating as $category) {
    echo '$category: ' . $category . PHP_EOL;
    foreach($category as $description) {
        echo '$description: '. $description . PHP_EOL;
        echo $description[description] . "<br />" .PHP_EOL;
    }
}

$category: Array
$description: Time Management
T<br />
$category: Array
$description: Attract Clients
A<br />
$category: Array
$description: Internet Marketing
I<br />

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读