variable print pass pasar into convertir cambiar asociativo array and php multidimensional-array implode

print - pass array to string php



Array Multidimensional PHP Implode (5)

Actualización para PHP 5.5

PHP 5.5 introduce array_column que es un atajo conveniente para toda una clase de uso de array_map ; También es aplicable aquí.

$ids = array_column($communications, ''id''); $output = implode('','', $ids);

Respuesta original

Usted necesita hacer una serie de solo identificadores a partir de su serie de comunicaciones. Entonces la implosión sería trivial.

Sugerencia: la función para eso es array_map .

Solución:

Asume PHP 5.3, de lo contrario, tendría que escribir la devolución de llamada como una cadena.

$ids = array_map(function($item) { return $item[''id'']; }, $communications); $output = implode('','', $ids);

En lo que respecta a mi estructura de datos, tengo una serie de comunicaciones, cada una de las cuales contiene una información: id, puntuación y contenido.

Quiero implosionar esta matriz para obtener una lista de identificadores separados por comas, ¿cómo hago esto?


De http://snipplr.com/view.php?codeview&id=10187 :

class Format { static public function arr_to_csv_line($arr) { $line = array(); foreach ($arr as $v) { $line[] = is_array($v) ? self::arr_to_csv_line($v) : ''"'' . str_replace(''"'', ''""'', $v) . ''"''; } return implode(",", $line); } static public function arr_to_csv($arr) { $lines = array(); foreach ($arr as $v) { $lines[] = self::arr_to_csv_line($v); } return implode("/n", $lines); } }


Para cualquiera que esté buscando una respuesta, esto es lo que pude hacer:

$singleDimensionalArray = array(); foreach($array["1"]["2"]["3"][...] as $value) { $singleDimensionalArray[] = $value; }

Utilicé esto con una matriz tridimensional.


Puedes echar un vistazo a la función array_walk_recursive . Este es un fragmento de trabajo de creación de matriz recursiva para conversión de cadena:

$array = array( "1" => "PHP code tester Sandbox Online", "foo" => "bar", 5 , 5 => 89009, "case" => "Random Stuff", "test" => array( "test" => "test221", "test2" => "testitem" ), "PHP Version" => phpversion() ); $string=""; $callback = function ($value, $key) use (&$string) { $string .= $key . " = " . $value . "/n"; }; array_walk_recursive($array, $callback); echo $string; ## 1 = PHP code tester Sandbox Online ## foo = bar ## 2 = 5 ## 5 = 89009 ## case = Random Stuff ## test = test221 ## test2 = testitem ## PHP Version = 7.1.3


este comentario basado en la solución @jon, solo agrega bloque de código funcional

pero tengo que usar loop porque array_map no acepta el segundo parámetro

function array_column_implode($data_array = array(),$key = ''id'', $delimiter = '','') { if (function_exists(''array_column'')) { return implode($delimiter, array_column($data_array, $key)); } else { $new_data_array = array(); foreach ($data_array as $value) { if (isset($value[$key])) { $new_data_array[] = $value[$key]; } } return implode($delimiter, $new_data_array); } }