У меня есть массив, как показано внизу
array (
[det1] => 1,2,3,4
[det2] => 5,6
);
Итак, я хочу объединить элементы этого массива и преобразовать массив в строку типа bottom
$uru = 1,2,3,4,5,6
Как я могу выполнить эту работу?
Возможный дубликат (при условии, что заголовок правильный, а входные данные неверны): stackoverflow.com/q/1319903/2943403






Вы пробовали вот так с implode()
<?php
$arr = array('det1'=>'1,2,3,4', 'det2'=>'5,6');
$uru = implode(',',$arr);
echo $uru;
?>
Вы говорите многомерный массив, но ваш массив является одномерным со строками?
Я предполагаю, что это опечатка, и ваш массив многомерный.
В этом случае зациклить массив и объединить новый массив с подмассивом.
$arr = array (
"det1" => [1,2,3,4],
"det2" => [5,6]
);
$new= [];
foreach($arr as $sub){
$new = array_merge($new, $sub);
}
echo implode(",",$new); // 1,2,3,4,5,6
Это также можно сделать без array_merge, например $new .= implode(',', $sub).
@Smartpal Нет возврата 1,2,3,45,6
@Mohammad Да, он возвращается, вы можете добавить дополнительный , в конце функции, например, этот implode(','$sub).',';, а затем использовать rtrim для удаления последнего.
Это легко сделать, распаковав в array_merge и затем присоединив полученный массив.
$data = [
[1,2,3,4,5],
[6,7,8],
];
echo join(',', array_merge(... $data));
Выход:
1,2,3,4,5,6,7,8
Хорошая идея, но это не сработает, потому что $data имеет строковые ключи, и вы не можете распаковать массив со строковыми ключами. Он должен работать, если вы использовали array_values на $data.
Если вам нужен более сложный сниппет, пройдите ссылка