Хочется понять, как автоматизировать обход вложенности, а не делать это в ручную.
$merged = [];
foreach ($orders as $order) {
foreach ($order as $key => $item) {
switch ($key) {
case 'quantity':
case 'total':
$merged[$key] = (false === isset($merged[$key])) ? $item : $merged[$key] + $item;
break;
case 'name':
$merged[$key] = (false === isset($merged[$key])) ? $item : $merged[$key] . " *** " . $item;
break;
case 'price':
break;
default:
$merged[$key] = $item;
break;
}
}
}
// кириллица - это юникод, простой str_split не подойдет
$strArray = preg_split('//u', $str, -1, PREG_SPLIT_NO_EMPTY);
$chars = [];
// считаете, сколько раз каждый символ повторяется
foreach ($strArray as $item) {
$chars[$item] = (true === isset($chars[$item])) ? $chars[$item] + 1 : 1;
}
// выводите только те, которые встречаются > 1 раза
foreach ($chars as $key => $count) {
if ($count > 1) {
echo "$key".PHP_EOL;
}
}