#php #arrays
#php #массивы
Вопрос:
Я использую следующий код для суммирования значения $x
со всеми существующими значениями в массиве $arr
:
$arr = array(
'0' => 2,
'1' => 3
);
foreach( $arr as $key => $value ) {
$arr[ $key ] = $arr[ $key ] $x;
}
Но код слишком медленный, когда размер массива увеличивается, а время является фактом для конкретного приложения. Итак, мне интересно узнать, есть ли какой-либо другой альтернативный способ выполнения операции?
- Спасибо
Комментарии:
1. Вы могли бы попробовать
$key => amp;$value
и$value = $x;
. Не уверен, что это сильно изменит ситуацию.
Ответ №1:
Просто попробуйте это с помощью =
. Это должно сделать это немного быстрее:
$arr = array( '0' => 2, '1' => 3);
foreach( $arr as $key => $value ) {
$arr[ $key ] = $x;
}
Вы можете протестировать это здесь: введите описание ссылки здесь
Ответ №2:
С array_map()
вы можете выполнять такого рода манипуляции;
$arr = array(
'0' => 2,
'1' => 3
);
$x = 1;
$newArr = array_map(function($value) use ($x) {
return $value $x;
}, $arr);
print_r($newArr);
Приведет к:
Array
(
[0] => 3
[1] => 4
)
Комментарии:
1. Улучшит ли это скорость?
2. Я думаю, что это быстрее, чем for / foreach , потому что array_map — это собственная функция php.