PHP - 格式化字符串输出

标签 php string

我正在尝试根据分配给用户的值来操作文本字符串。

完整的文本字符串是“列表、项目、案例、身份和位置”,并且仅针对 ADMIN 完整显示。

系统上的每个用户都拥有访问权限。每项权利都决定了他们可以做什么和不能做什么。 因此访问权限 a1 = 'Lists'b1 = 'Items' 等...

当用户登录页面时,会显示他们有权访问的内容。

例如:

Welcome $user
You have access to $foo

对于管理员用户..这看起来像:

Welcome Admin
You have access to Lists, Items, Cases, Identity and Location

所以现在我正在尝试执行以下操作:

if ($user == 'admin') $foo = 'Lists, Items, Cases, Identity and Location'; // full access

但我需要能够更改每个用户的值。

$foo ='';
if (strpos($access,'a1') !== false) $foo .= 'Lists ';
if (strpos($access,'b1') !== false) $foo .= 'Items ';
if (strpos($access,'c1') !== false) $foo .= 'Cases ';
if (strpos($access,'d1') !== false) $foo .= 'Identity ';
if (strpos($access,'e1') !== false) $foo .= 'Location ';

我遇到的问题是标点符号困惑。 用户 Miz 有权访问 a1,b1,c1

当她登录时,她会得到:

Welcome Miz
You have access to Lists Items Cases

我想说的是:

Welcome Miz
You have access to Lists, Items and Cases

谁能建议实现这一目标的最佳方法

谢谢

最佳答案

使用implode()

<?php
$arr = array();

if (strpos($access,'a1') !== false) $arr[] =  'Lists ';
if (strpos($access,'b1') !== false) $arr[] =  'Items ';
if (strpos($access,'c1') !== false) $arr[] =  'Cases ';
if (strpos($access,'d1') !== false) $arr[] =  'Identity ';
if (strpos($access,'e1') !== false) $arr[] =  'Location ';
$last = array_pop($arr);
$foo = count($arr) ? implode(", ", $arr) . " AND " . $last : $last;
?>

关于PHP - 格式化字符串输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27483862/

相关文章:

php - 警告 : preg_match(): Internal pcre_fullinfo()

php - 教义2 : Load entity and childs count

php - 我应该在 MySQL 中使用什么数据类型来存储 XSD 格式的日期时间?

java - 词法分析器

C# 8 从字符串中获取最后 n 个字符的方法

php - 在 PHP 中生成字母数字字符串

php - 当字段 = 1 时,有没有办法选择 ColName?

javascript - 根据php条件隐藏html中的列表元素

string - 设置单元格格式以获取逗号分隔值

python - 用正则表达式替换引号、逗号、撇号 - python/pandas