【发布时间】:2015-02-17 17:47:36
【问题描述】:
我正在使用按以下方式组成的字符串:
0003customer-23892644362977289 28 23892644362977293 29 23892644362977294 30
前四个字符:要处理的注册表数。
String "customer-":定义要使用的表
链的下一部分定义为字符串的键 => 值(uuid_short => 远程 id)
我需要将链的每个部分分开,以便可以在本地处理。
我尝试使用子字符串、explode 和以下循环:
$array = explode(" ", $string);
for($i = 0, $b = 0; $b < $num_of_registries; $i = $i + 2, $b++)
{
$local = $array[$i];
$remote = $array[$i+1];
// store values in array
$inserted = array();
$inserted['local'] = $local;
$inserted['remote'] = $remote;
$array_inserted[] = $inserted;
}
foreach ($array_inserted as $key => $value)
{
echo $value["local"].' => '.$value["remote"].' <p>';
}
但循环仅适用于单个字符值对。
【问题讨论】:
-
提供预期的输出。
-
-是否被用作表名中的分隔符? -
我需要提取前四个字符来定义循环的长度,我需要表名来知道要对哪个表进行操作,在表用作分隔符之后,之后我需要提取每个值对才能将它们插入到数组中
-
我更新了代码以反映我正在使用的整个过程。如果需要,我还可以更新字符串结构。
-
在分隔符上拆分,使用您当前的子字符串逻辑从
split[0]获取注册表数量,然后在split[1]上拆分空间并修改您当前的for循环以使用最后一个拆分而不是$array.
标签: php regex string substring