/**
* For merging values of a multidimensional array into one
*
* $array = [
* 0 => [
* 0 => 'a1',
* 1 => 'b1',
* 2 => 'c1',
* 3 => 'd1'
* ],
* 1 => [
* 0 => 'a2',
* 1 => 'b2',
* 2 => 'c2',
* ]
* ];
*
* becomes :
*
* $array = [
* 0 => 'a1',
* 1 => 'b1',
* 2 => 'c1',
* 3 => 'd1',
* 4 => 'a2',
* 5 => 'b2',
* 6 => 'c2',
*
* ]
*/
array_reduce
(
$multiArray
, function ($lastItem, $currentItem) {
$lastItem = $lastItem ?: array();
return array_merge($lastItem, array_values($currentItem));
}
);
Вы, по сути, ответили на свой вопрос как можно подробнее. Я, конечно, не могу придумать никакой причины использовать std ::nds
, когда std :: string
и std :: stringstream
обрабатывают все это за вас.
Итак, чтобы прямо ответить на ваш вопрос, нет, нет причин использовать std ::nds
в среде, где только std :: string
.
Есть некоторые API, которые ожидают "строковый массив" с несколькими строками, завершающимися нулем, двойным нулем в конце. Рэймонд Чанг совсем недавно написал об этом в блоге , прежде всего, чтобы продемонстрировать, как часто с этим сталкиваются.