我有一个名为$Bond
的数组:
$Bond = array (
'Sean Connery' => 'Dr. No',
'George Lazenby' => 'On Her Majesty\'s Secret Service',
'Roger Moore' => 'Live and Let Die',
'Timothy Dalton' => 'The Living Daylights',
'Pierce Brosnan' => 'GoldenEye',
'Daniel Craig' => 'Casino Royal'
);
我只需从密钥和密钥中提取姓氏。将它们打印为大写。
我将如何在世界范围内这样做?
答案 0 :(得分:1)
这将遍历每个项目并为您提供姓氏。
foreach($box as $k=>$v){
$lastName = explode(' ',$k)[1];
echo strtoupper($lastName);
}
如果你的名字叫“Mary Jo”或“Bobby Jo”作为名字,这可能会破坏。在这种情况下,如果发生这种情况,您可能需要进行一些更改。
编辑。我实现了end函数以确保姓氏。
foreach($box as $k=>$v){
$lastName = explode(' ',$k);
echo strtoupper(end($lastName));
}
答案 1 :(得分:0)
您可以通过多种方式使用array_keys()
创建一系列密钥,然后使用for()
查看密钥数组,将名称拆分为explode()
并转换为上限使用end($info)
的姓氏(strtoupper()
)。见代码:
<?php
$Bond = array (
'Sean Connery' => 'Dr. No',
'George Lazenby' => 'On Her Majesty\'s Secret Service',
'Roger Moore' => 'Live and Let Die',
'Timothy Dalton' => 'The Living Daylights',
'Pierce Brosnan' => 'GoldenEye',
'Daniel Craig' => 'Casino Royal'
);
$array_keys = array_keys($Bond);
for($i = 0; $i < count($array_keys); $i++) {
$info = explode(' ', $array_keys[$i]);
echo strtoupper(end($info)) . "<br>\n";
}
?>
或者您可以使用foreach()
将您的名称与explode()
分开,并使用end($info)
转换为姓氏(strtoupper()
)的上限。 :
<?php
$Bond = array (
'Sean Connery' => 'Dr. No',
'George Lazenby' => 'On Her Majesty\'s Secret Service',
'Roger Moore' => 'Live and Let Die',
'Timothy Dalton' => 'The Living Daylights',
'Pierce Brosnan' => 'GoldenEye',
'Daniel Craig' => 'Casino Royal'
);
foreach($Bond as $key => $value) {
$info = explode(' ', $key);
echo strtoupper(end($info)) . "<br>\n";
}
?>
两种情况下的输出:
CONNERY
LAZENBY
MOORE
DALTON
BROSNAN
CRAIG
答案 2 :(得分:0)
由于演员姓名属于键,因此请使用foreach,然后您可以使用strrchr
+ substr
来获取姓氏:
foreach($Bond as $name => $movie) {
$last = strtoupper(substr(strrchr($name, ' '), 1));
echo $last, '<br/>';
}
答案 3 :(得分:0)
这应该适合你,好看又紧凑:
(这里我使用array_keys()
遍历所有数组键,然后我用explode()
每个键作为分隔符的空格。然后访问我在strtoupper()
情况下返回的最后一个元素)
<?php
$lastNamesUpper = array_map(function($v){
return strtoupper(explode(" ", $v)[substr_count($v, " ")]);
}, array_keys($Bond));
foreach($lastNamesUpper as $v)
echo "$v<br>";
?>
输出:
CONNERY
LAZENBY
MOORE
DALTON
BROSNAN
CRAIG