2-х мерный массив в строки с запятой

Мой текущий php-код возвращает три массива. Я хочу преобразовать эти три массива в 3 строки, разделенные запятыми.

Мой массив эхо выглядит так...

array (size=3)
     0 => 
    array (size=3)
      0 => string '1' (length=1)
      1 => string 'here' (length=4)
      2 => string 'Skincare composition against free radicals' (length=42)
  1 => 
    array (size=3)
      0 => string '2' (length=1)
      1 => string 'tere' (length=4)
      2 => string 'Compositions and methods for modification of skin lipid content' (length=63)
  2 => 
    array (size=3)
      0 => string '3' (length=1)
      1 => string 'fere' (length=4)
      2 => string 'Method and apparatus for acne treatment' (length=39) 

Помогите мне с простым фрагментом php-кода преобразовать один массив в значения, разделенные запятыми. Я буду работать над циклом для переноса моих трех массивов в строки.

4 ответа

Решение

Назовите свой массив for example: $array1 затем используйте foreach для создания одного массива. Оттуда используйте implode, чтобы сделать строку. НАПРИМЕР:

foreach ($array1 as $value1){
 foreach ($value1 as $value){
  $newString[]=$value;
 }
}
$string=implode(", ", $newString);
echo $string; //will echo comma separated string

Если вы пытаетесь превратить массив в строку, разделенную запятыми, используйте implode():

<?php
    $oldArray = array(array("red","green","blue"),array("Larry","Moe","Curly"),array("puppy dogs","rainbows","butterflies"));

    foreach($oldArray as $array){
        $newArray[] = implode(",",$array);
    }

    echo "<pre>";
    print_r($newArray);
    echo "</pre>";
?>

/*
Output:
Array
(
    [0] => red,green,blue
    [1] => Larry,Moe,Curly
    [2] => puppy dogs,rainbows,butterflies
)

*/

Это будет делать

$comma_separated = implode(",", $array);

Не совсем понятно, о чем вы спрашиваете, но я предполагаю, что вы хотите implode внутренние массивы и заканчиваются массивом из 3 строк вместо. Если я прав, следующее помогает:

$arr = array(
  array(1, 'badger', 'longer text about badger'), 
  array(2, 'ferret', 'longer text about ferret'), 
  array(3, 'hamster', 'longer text about hamster'), 
);

// This is the line you're interested in
$newArr = array_map(function($el) { return implode(', ', $el); }, $arr);

var_dump($newArr);

/** Gives output:
array(3) {
  [0]=>
  string(35) "1, badger, longer text about badger"
  [1]=>
  string(35) "2, ferret, longer text about ferret"
  [2]=>
  string(37) "3, hamster, longer text about hamster"
}
**/
Другие вопросы по тегам