Насколько мне известно, php ничего не делает асинхронно, в отличие от ответа Саджита Аммы.
Я подозреваю, что это на самом деле из-за различий в поиске $maxHeap->insert
.
С помощью цикла foreach
, который вы вызываете $maxHeap->insert
в текущей области, интерпретатор php должен искать maxHeap
, а затем искать insert
в экземпляре maxHeap
.В рамках скрипта, который вы запускаете, могут быть другие переменные, которые могут замедлить поиск.
С array_map
интерпретатор php знает, что будет вызывать точно такой же $maxHeap->insert
, он может сделатьпоиск только один раз и использовать тот же «кодовый адрес» для остальных итераций.