Looking at the print_r of $_POST[‘assets’] compared to your foreach statement you can see that $index represents the KEYS in the $_POST[‘assets’] array (0,1,2) and $asset represents the VALUES in the $_POST[‘assets’] array. So $asset is singular value like (2,3,4) and not an array with [KEYS], so $asset[$index] will throw an error as $index is not a key of $asset.
Using
$_POST['assets'][$index]
would give you the foreach value OR you could sumply use
$asset
as it represents the VALUES in the $_POST[‘assets’] array.