问题描述
|
>>> lst = [\'dingo\',\'wombat\',\'wallaby\']
>>> [w.title() for w in lst]
[\'Dingo\',\'Wombat\',\'Wallaby\']
>>>
在python中,有简单的方法可以处理列表推导。
用array(\'dingo\',\'wallaby\');
在PHP中呢?
是否存在数组理解或任何内置函数,或通常在其上循环?
编辑
function addCaps( Iterator $it )
{
echo ucfirst( $it->current() ) . \'<br />\';
return true;
}
/*** an array of aussies ***/
$array = array( \'dingo\',\'wallaby\' );
try
{
$it = new ArrayIterator( $array );
iterator_apply( $it,\'addCaps\',array($it) );
}
catch(Exception $e)
{
/*** echo the error message ***/
echo $e->getMessage();
}
看起来代码不太像我预期的那样简单?
解决方法
您可以将
array_map()
与匿名函数一起使用(闭包仅适用于PHP 5.3+)。
$arr = array_map(function($el) { return $el[0]; },array(\'dingo\',\'wombat\',\'wallaby\'));
print_r($arr);
输出量
Array
(
[0] => d
[1] => w
[2] => w
)
编辑:OP \的示例代码
$arr = array_map(\'ucwords\',\'wallaby\'));
print_r($arr);
输出:
Array
(
[0] => Dingo
[1] => Wombat
[2] => Wallaby
)
,您没有对PHP的数组理解。您确实具有类似于ѭ9的函数,类似于9的python函数。
,array_map()
和array_filter()