search_api-8.x-1.15/src/Contrib/RowsOfMultiValueFields.php
src/Contrib/RowsOfMultiValueFields.php
<?php
namespace Drupal\search_api\Contrib;
use Consolidation\OutputFormatters\Options\FormatterOptions;
use Consolidation\OutputFormatters\StructuredData\RowsOfFields;
use Consolidation\OutputFormatters\StructuredData\RenderCellInterface;
/**
* Outputs multi-valued data as comma-separated values.
*
* This is used in the Drush integration.
*/
class RowsOfMultiValueFields extends RowsOfFields implements RenderCellInterface {
/**
* {@inheritdoc}
*/
public function renderCell($key, $cellData, FormatterOptions $options, $rowData) {
if (is_array($cellData)) {
return static::arrayToString($cellData);
}
return $cellData;
}
/**
* Converts an array of string data into a comma separated string.
*
* @param array $array
* A multidimensional array of string data.
*
* @return string
* A comma separated string.
*/
protected static function arrayToString(array $array) {
$elements = [];
foreach ($array as $element) {
$elements[] = is_array($element) ? '"' . static::arrayToString($element) . '"' : $element;
}
return implode(',', $elements);
}
}
