列表理解(python)和数组理解(php)?

时间:2011-04-14 14:06:37

标签: php python arrays arraylist

>>> lst = ['dingo', 'wombat', 'wallaby']
>>> [w.title() for w in lst]
['Dingo', 'Wombat', 'Wallaby']
>>> 

在python中有一些简单的方法可以解决列表理解问题。

在php中使用array('dingo', 'wombat', 'wallaby');怎么样?

是否有数组理解或任何内置函数,或者正常循环?

编辑

function addCaps( Iterator $it )
{
    echo ucfirst( $it->current() ) . '<br />';
    return true;
}

/*** an array of aussies ***/
$array = array( 'dingo', 'wombat', 'wallaby' );

try
{
    $it = new ArrayIterator( $array );
    iterator_apply( $it, 'addCaps', array($it) );
}
catch(Exception $e)
{
    /*** echo the error message ***/
    echo $e->getMessage();
}

看起来代码不像我预期的那么简单?

3 个答案:

答案 0 :(得分:8)

您可以将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', array('dingo', 'wombat', 'wallaby'));
print_r($arr);

输出:

Array
(
    [0] => Dingo
    [1] => Wombat
    [2] => Wallaby
)

答案 1 :(得分:2)

您没有PHP的数组解析。你有array_walk()之类的函数类似于python的map()函数。

答案 2 :(得分:2)

相关问题