Как я могу неизбежно трансформировать большие вложенные массивы PHP, не создавая дорогостоящих глубоких копий?Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как я могу неизбежно трансформировать большие вложенные массивы PHP, не создавая дорогостоящих глубоких копий?

Сообщение Anonymous »

Я работаю с крупными вложенными ассоциативными массивами в PHP, и мне необходимо применять преобразования (например, Map, Filter, RESHAPE), что означает, что исходный массив не должен быть изменен. Пример: < /p>
$data = [
'users' => [
['id' => 1, 'name' => 'Alice', 'active' => true],
['id' => 2, 'name' => 'Bob', 'active' => false],
]];

$mapped = array_map(fn($u) => ['id' => $u['id']], $data['users']);
$filtered = array_filter($mapped, fn($u) => $u['id'] % 2 === 0);
< /code>
Это работает, но копирует массивы несколько раз. На больших входах это медленно и неэффективно.>

Подробнее здесь: https://stackoverflow.com/questions/797 ... -expensive
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»