[英]split a comma separated string in a pair of 2 using php
我有一个字符串有128个值的形式:
1,4,5,6,0,0,1,0,0,5,6,...1,2,3.
我希望以下列形式配对:
(1,4),(5,6),(7,8)
这样我就可以使用PHP为64个数据创建一个for循环。
您可以通过以下步骤完成此操作:
使用explode()
将字符串转换为数字数组
使用array_chunk()
形成两个组
使用array_map()
将每个组转换为带括号的字符串
使用join()
将所有内容粘合在一起。
你可以使用这种美味的单行,因为每个人都喜欢这些:
echo join(',', array_map(function($chunk) {
return sprintf('(%d,%d)', $chunk[0], isset($chunk[1]) ? $chunk[1] : '0');
}, array_chunk(explode(',', $array), 2)));
如果最后一个块小于两个项,则它将使用'0'
作为第二个值。
<?php
$a = 'val1,val2,val3,val4';
function x($value)
{
$buffer = explode(',', $value);
$result = array();
while(count($buffer))
{ $result[] = array(array_shift($buffer), array_shift($buffer)); }
return $result;
}
$result = x($a);
var_dump($result);
?>
显示:
array(2) { [0]=> array(2) { [0]=> string(4) "val1" [1]=> string(4) "val2" } [1]=> array(2) { [0]=> string(4) "val3" [1]=> string(4) "val4" } }
如果修改它,那么它可能会帮助你这样:
<?php
$a = '1,2,3,4';
function x($value)
{
$buffer = explode(',', $value);
$result = array();
while(count($buffer))
{ $result[] = sprintf('(%d,%d)', array_shift($buffer), array_shift($buffer)); }
return implode(',', $result);
}
$result = x($a);
var_dump($result);
?>
这表现了:
string(11) "(1,2),(3,4)"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.