我正在尝试修改关联数组,例如。
array(
'key1' => 'val1',
'key2' => 'val2',
'key3' => 'val3'
)
类似
array(
':key1' => 'val1xx',
':key2' => 'val2xx',
':key3' => 'val3xx'
// ^ colen
)
您可能会认识到我正在尝试将其转换为PDOStatement::execute()
中可以使用的内容。在这种情况下,我目前不需要修改该值。但是想知道只是为了知识
我可以用它做什么?我认为foreach
可以做大多数事情,但像array_map
或array_walk
这样的功能会带来什么好处?喜欢表演?或者只是看起来不同
答案 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)修改值,但不能修改键。