【发布时间】:2014-11-22 12:27:17
【问题描述】:
我有一个名字列表,每个名字由 2-4 个单词组成:名字、(如果存在)中间名、姓氏。
这些是名字:
- 阿里耶尔马兹
- Taha Ugur Unal
- 奥马尔·易卜拉欣·塔辛孙
- Recai Sahin
等等
我想把这些名字打印成这样:姓,中间名(如果存在)
上面的名字将是:
- 阿里耶尔马兹 -> 耶尔马兹,阿里
- Taha Ugur Unal -> Unal, Taha Ugur
- Omer Ibrahim Tahsin Son -> 儿子,Omer Ibrahim Tahsin
- Recai Sahin -> Sahin, Recai
等等
如果我只有一个名字,我可以使用该代码:
<?php $exp1 = explode(" ", $author1); ?>
<?php if (count($exp1) == 2) {?>
<?php print ($exp1[1] .', ' .$exp1[0]); ?>
<?php } elseif (count($exp1) == 3) {?>
<?php print ($exp1[2] .', ' .$exp1[0] .' ' .$exp1[1]); ?>
<?php } elseif (count($exp1) == 4) {?>
<?php print ($exp1[3] .', ' .$exp1[0] .' ' .$exp1[1] .' ' .$exp1[2]); ?>
<?php }?>
每个页面可以有不同数量的作者,我想我可以使用 foreach 为每个作者姓名应用上述代码,但我不能这样做。
我尝试了一段代码:
<?php foreach $author as $obj): ?>
<?php $a = explode (" ", $obj) ?>
<?php endforeach ?>
...
但它给出了错误:
explode() 期望参数 2 是字符串,给定数组。
我该怎么做?
【问题讨论】:
-
为什么要关闭你的php每一行?
-
请立即在外部
$obj中执行var_dump和foreach) 并发布结果以便我们进行调查。 -
@vp_arth 因为它是关于 Drupal 结构 (drupal.org/coding-standards)。
-
@Dai,结果如下:Array array(2) { ["tid"]=> string(4) "5930" ["taxonomy_term"]=> object(stdClass)#117 (8 ) { ["tid"]=> string(4) "5930" ["vid"]=> string(1) "2" ["name"]=> string(22) "Çiğdem Apaydın Kaya" ["description" ]=> NULL ["format"]=> NULL ["weight"]=> string(1) "0" ["vocabulary_machine_name"]=> string(5) "yazar" ["rdf_mapping"]=> array(5 ) { ["rdftype"]=> array(1) { [0]=> string(12) "skos:Concept" } ["name"]=> array(1) { ["predicates"]=> array( 2) { [0]=> string(10) "rdfs:label" [1]=> string(14) "skos:prefLabel" } } ["description"]=> array(1) { ["predicates"] => 数组(1){ ...
-
这个
Coding Standards从来没有说过要这样做)