我有一个代码:
$salys = xprofile_get_field_data( '1237', $user_id, $multi_format = 'comma' );
此代码在用户ID列表中显示国家/地区,例如:
安道尔,阿塞拜疆,巴巴多斯,比利时,伯利兹,不丹,玻利维亚,加拿大
我的目标是仅限制我尝试使用 array_slice
做的国家数量 $skaiciai = array_slice($salys, 0, 5);
然后使用
回显它 echo "<textarea>";
print_r($skaiciai);
echo "</textarea>";
但是该功能无效,并且没有回显任何内容。
在这种情况下,我尝试限制最多5个国家/地区,但这不起作用。
编辑1:
在用户评论的帮助下,我设法限制了我的代码的国家/地区:
<?php
global $bp;
$salys = xprofile_get_field_data( '1237', $user_id, $multi_format = 'comma' );
$array8 = explode(', ', $salys);
$skaiciai = array_slice($array8, 0, 5);
echo "<textarea>";
print_r($skaiciai);
echo "</textarea>";
?>
输出新问题,因为它在数组示例中提供了原始输入:
Array
(
[0] => Andorra
[1] => Azerbaijan
[2] => Barbados
[3] => Belgium
[4] => Belize
)
问题:我需要做某种正则表达式来清理它吗?
答案 0 :(得分:0)
我想这就是您想要的:
<?php
global $bp;
$salys = xprofile_get_field_data( '1237', $user_id, $multi_format = 'comma' );
$array8 = explode(',', $salys);
$skaiciai = array_slice($array8, 0, 5);
//remove spaces from beginning and the end of name.
//for every element in the array
$skaiciai = array_map('trim',$skaiciai);
echo "<textarea>";
//for every element in the array
//copy the element to var $item
foreach($skaiciai as $item) {
echo $item . '<br>' . PHP_EOL;
}
echo "</textarea>";
或按照@Nick的建议使用爆破
$salys = xprofile_get_field_data( '1237', $user_id, $multi_format = 'comma' );
$array8 = explode(',', $salys);
$skaiciai = array_slice($array8, 0, 5);
//remove spaces from beginning and the end of name.
//for every element in the array
$skaiciai = array_map('trim',$skaiciai);
echo "<textarea>";
echo implode(', ', $skaiciai);
echo "</textarea>";
在一行中获取值。
使用','
而不用空格代替', '
可以防止将来用逗号分隔项目,但它们之间没有空格。
但是随后您需要使用trim删除空格,并在以后需要时添加空格。