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);
}
}