【发布时间】:2018-02-26 03:12:04
【问题描述】:
我正在努力思考如何做到这一点……
我有一个类似的东西:
$contributors = array(
[0] => array(
[name] => 'John',
[role] => 'author',
),
[1] => array(
[name] => 'Gail',
[role] => 'author',
),
[2] => array(
[name] => 'Beth',
[role] => 'illustrator',
),
)
我正在尝试使用这些信息来构建详细的署名,例如:
由约翰和盖尔撰写。由贝丝设计。
我需要将每个 role 与上一个和下一个进行比较,以便:
- 在每个
role的第一个实例之前使用标签 - 用逗号分隔同一
role的多个实例 - 在每个
role的最后一个实例之前使用“and”而不是逗号
我不是 PHP 专家,所以我很难弄清楚如何解决这个问题!我有一个函数可以根据role 输出正确的标签,但这是我似乎无法弄清楚的比较。我考虑过foreach 和while 循环,但似乎都不能胜任这项工作。我从未使用过for 循环,所以我不知道它是否适用。
一些额外的背景:
- 我正在使用 WordPress 和高级自定义字段插件。
-
$contributors是 ACF Repeater 字段的值,其中name和role是子字段。 (我已经简化了名称以使事情变得更容易。)
【问题讨论】:
-
你只有两个角色,作者和插画家吗?
标签: php wordpress compare associative-array advanced-custom-fields