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

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了回显PHP数组只显示每个值的第一个字母脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
这是一个简单的评级系统.有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 />

脚本宝典总结

以上是脚本宝典为你收集整理的回显PHP数组只显示每个值的第一个字母全部内容,希望文章能够帮你解决回显PHP数组只显示每个值的第一个字母所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。