Можно ключ массива разбить с помощью регулярного выражения, а дальше просто выбирать нужные значения. Пример:
$arr = [
'telephone' => '+7(999) 999-99-99',
'name0' => 'Имя 1',
'quantity0' => '1',
'name1' => 'Имя 2',
'quantity1' => '2',
'name20' => 'Имя 3',
'quantity20' => '3',
'totalCost' => '3380',
];
foreach ($arr as $k => $v) {
if(preg_match("/^([a-zA-Z_]+)(\d+)$/", $k, $matches)) {
$key = $matches[1];
$idx = $matches[2];
} else {
$key = $k;
}
if($key === 'quantity') {
continue;
}
if($key === 'name') {
printf('Name: %s, Quantity: %s<br>', $v, $arr['quantity'.$idx]);
continue;
}
printf('%s: %s<br>', $k, $v);
}
Но, если есть такая возможность, лучше передавать данные из формы следующим образом:
<form action="/test.php" method="POST">
<input type="text" name="name[]" value="name 1">
<input type="text" name="quantity[]" value="quantity 1">
<input type="text" name="name[]" value="name 2">
<input type="text" name="quantity[]" value="quantity 2">
<input type="submit" value="Submit">
</form>