Implode array recursively in PHP

/**
 * Recursive implode.
 *
 * @see https://wpcodebook.com/snippets/implode-array-recursively-in-php/
 */
function wpcodebook_recursive_implode( $separator, $array ) {
	$output = '';
	foreach ( array_values( $array ) as $i => $a ) {
		$output .= ( is_array( $a ) ? wpcodebook_recursive_implode( $separator, $a ) : $a );
		if ( $i < count( $array ) - 1 ) {
			$output .= $separator;
		}
	}
	return $output;
}

Example:

$data = array(
	'product_id'       => 100,
	'product_sku'      => 'SKU01',
	'related_products' => array( 150, 151 ),
);

echo wpcodebook_recursive_implode( ', ', $data );

Output:

100, SKU01, 150, 151

Leave a Comment