<?php

global $menuindex, $modx;
function updateMenuIndex($id) {
    
    global $menuindex, $modx;
    
    $childsIds = $modx->getChildIds($id,1,array('context' => 'web'));                   
    if(!count($childsIds)) return;
    
    $q = $modx->newQuery('modResource');
    $q->where( ['id:IN' => $childsIds] ); 
    $q->sortby('menuindex', 'ASC');
    
    $result = $modx->getCollection('modResource', $q);
    
    foreach($result as $key=>$res) {
        $menuindex++;
        $res->set('menuindex', $menuindex);
        $res->save();
        //echo "$menuindex - {$res->pagetitle} ({$res->id})<br>";
        
        updateMenuIndex($res->get('id'));
    }
}
updateMenuIndex(0);
