Внедрить двумерный массив в переполнение стека

У меня есть массив, как:

Array
(
[0] => Array
(
[0] => a
[1] => b
)

[1] => Array
(
[0] => c
)

[2] => Array
(
[0] => d
[1] => e
[2] => f
)

)

Я хочу преобразовать мой массив в строку, как показано ниже:

$arrtostr = 'a,b,c,d,e,f';

Я использовал implode() функция, но, похоже, она не работает на двухмерных массивах.

Что я должен делать?

1

Решение

В качестве альтернативы, вы можете использовать контейнер для этого сначала, объединить содержимое и, в конце концов, иметь плоский, а затем использовать implode():

$letters = array();
foreach ($array as $value) {
$letters = array_merge($letters, $value);
}

echo implode(', ', $letters);

Пример вывода

4

Другие решения

Учитывая ваш предметный массив:

$subject = array(
array('a', 'b'),
array('c'),
array('d', 'e', 'f'),
);

Два простых способа получить «плоский» массив:

PHP 5.6.0 и выше с использованием оператор сплат:

$flat = array_merge(...$subject);

Ниже, чем PHP 5.6.0 с помощью call_user_func_array():

$flat = call_user_func_array('array_merge', $subject);

Оба из них дают массив как:

$flat = array('a', 'b', 'c', 'd', 'e', 'f');

Затем, чтобы получить вашу строку, просто взорвать:

$string = implode(',', $flat);
1

Вы просили двумерный массив, вот функция, которая будет работать для многомерного массива.

function implode_r($g, $p) {
return is_array($p) ?
implode($g, array_map(__FUNCTION__, array_fill(0, count($p), $g), $p)) :
$p;
}

Я могу сгладить структуру массива следующим образом:

$multidimensional_array = array(
'This',
array(
'is',
array(
'a',
'test'
),
array(
'for',
'multidimensional',
array(
'array'
)
)
)
);

echo implode_r(',', $multidimensional_array);

Результаты:

This,is,a,test,for, multidimensional,array
1
По вопросам рекламы [email protected]