Print array recursively in PHP

/**
 * Prints array recursively.
 *
 * @see https://wpcodebook.com/snippets/print-array-recursively-in-php/
 */
function wpcodebook_recursive_print( $separator, $array, $parent_key = null ) {
	$output = '';
	$index  = 0;
	foreach ( $array as $k => $a ) {
		if ( null !== $parent_key ) {
			$k = "{$parent_key} > {$k}";
		}
		if ( is_array( $a ) ) {
			$output .= wpcodebook_recursive_print( $separator, $a, $k );
		} else {
			$output .= "{$k} = {$a}";
		}
		if ( $index < count( $array ) - 1 ) {
			$output .= $separator;
		}
		$index++;
	}
	return $output;
}

Example:

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

echo wpcodebook_recursive_print( '<br>', $data );

Output:

product_id = 100
product_sku = SKU01
related_products > 0 = 150
related_products > 1 = 151

Leave a Comment