修改关联数组键和;值(是的键)。 array_walk或foreach或其他东西

时间:2011-06-06 10:03:06

标签: php arrays

我正在尝试修改关联数组,例如。

array(
    'key1' => 'val1',
    'key2' => 'val2',
    'key3' => 'val3'
)

类似

array(
    ':key1' => 'val1xx',
    ':key2' => 'val2xx',
    ':key3' => 'val3xx'
  // ^ colen        
)

您可能会认识到我正在尝试将其转换为PDOStatement::execute()中可以使用的内容。在这种情况下,我目前不需要修改该值。但是想知道只是为了知识

我可以用它做什么?我认为foreach可以做大多数事情,但像array_maparray_walk这样的功能会带来什么好处?喜欢表演?或者只是看起来不同

3 个答案:

答案 0 :(得分:2)

foreach和array_map方法之间存在很大的性能差距。最快的是foreach构造。这种结构的速度可以是匿名函数的五到六倍,至少在循环中没有多少工作要做。在大多数情况下,与循环或匿名函数中的时间花费相比,迭代数组所花费的时间可以忽略不计。所以这种性能差异并不重要。For more information see link here.

答案 1 :(得分:1)

$result = array();
foreach ($array as $key => $value)
  $result[":$key"] = "{$value}xx";

答案 2 :(得分:0)

Thariama的回答指出了for循环和array_map之间的性能差距。还应该指出,没有无环路方式来修改数组中的密钥。您可以使用不同的无循环方式(包括array_map和array_walk)修改值,但不能修改键。