回显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 /> (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |