您可以使用explode() 或preg_split(), 像这样:
$i = 0;
foreach( $namesArray as $key => $name ) {
$arr = explode( \' -\', $name, 2 );
//$arr = preg_split( \'/\\s+\\-/\', $name, 2 );
$name2 = isset( $arr[0] ) ? trim( $arr[0] ) : \'\';
$role_name = isset( $arr[1] ) ? trim( $arr[1] ) : \'\';
if ( $name2 || $role_name ) : $i++; ?>
<tr>
<th scope="row"><?php echo $i; ?></th>
<td><?php echo $name2; ?></td>
<td><?php echo $role_name; ?></td>
</tr>
<?php endif;
}
此外,您需要包装
\\n 在双引号中:
$namesArray = explode( "\\n", $names); // not \'\\n\'
否则
\\n 不会被评估为“新线”。