Php 将数组值转换为新数组而不丢失任何字符
我有一个如下所示的数组:Php 将数组值转换为新数组而不丢失任何字符,php,arrays,loops,explode,Php,Arrays,Loops,Explode,我有一个如下所示的数组: Array ( [basisprijs] => 17,00 [basisstaffel] => 3-10:17; 10-20:14; 20-30:12; 30-40:10; 40-50:7,50; 50-60:6,50; 60-110:6; [minimaalformaat] => 10x3 [maximaalformaat] => 120x5000
Array
(
[basisprijs] => 17,00
[basisstaffel] =>
3-10:17;
10-20:14;
20-30:12;
30-40:10;
40-50:7,50;
50-60:6,50;
60-110:6;
[minimaalformaat] => 10x3
[maximaalformaat] => 120x5000
[breedte] => 12
[hoogte] => 4
[aantal] => 1
[Lijmlaag] => Wit(prijsberekening)+($m2*4);
)
我想从[basisstaffel]
创建一个新数组,每个后面都有一个代码>新行开始,因此期望的最终结果将是:
Array
(
[0] = > 3-10:17;
[1] = > 10-20:14;
[2] = > 20-30:12;
[3] = > 30-40:10;
[4] = > 40-50:7,50;
[5] = > 50-60:6,50;
[6] = > 60-110:6;
)
我该怎么做?在上使用分解
代码>使我丢失了那部分值。那么还有别的办法吗
第一个数组称为$productarray
您可以使用explode函数,然后执行foreach循环并添加“;”再一次,像这样:
$newArray=array();
$myArray=array();
$myArray['basisprijs'] = '17,00';
$myArray['basisstaffel'] ='3-10:17;10-20:14;20-30:12;30-40:10;40-50:7,50;50-60:6,50;60-110:6';
$myArray['minimaalformaat'] = '10x3';
$myArray['maximaalformaat'] = '120x5000';
$myArray['breedte'] = '12';
$myArray['hoogte'] = '4';
$myArray['aantal'] = '1';
$myArray['Lijmlaag'] = 'Wit(prijsberekening)+($m2*4)';
$basisstafel=$myArray['basisstaffel'];
$tmp = explode(";", $basisstafel);
foreach ($tmp as $ind){
$newArray[]=$ind.';';
}
echo "<pre>";
print_r($newArray);
echo "</pre>";
$newArray=array();
$myArray=array();
$myArray['basisprijs']='17,00';
$myArray['basisstaffel']='3-10:17;10-20:14;20-30:12;30-40:10;40-50:7,50;50-60:6,50;60-110:6';
$myArray['minimaalformat']='10x3';
$myArray['MaximaalFormat']='120x5000';
$myArray['breedte']='12';
$myArray['hoogte']='4';
$myArray['aantal']='1';
$myArray['Lijmlaag']='Wit(prijsberekening)+($m2*4)';
$basisstafel=$myArray['basisstaffel'];
$tmp=爆炸(“;”,$basisstafel);
foreach($tmp作为$ind){
$newArray[]=$ind.;';
}
回声“;
打印(新数组);
回声“;
您可以使用explode函数,然后执行foreach循环并添加“;”再一次,像这样:
$newArray=array();
$myArray=array();
$myArray['basisprijs'] = '17,00';
$myArray['basisstaffel'] ='3-10:17;10-20:14;20-30:12;30-40:10;40-50:7,50;50-60:6,50;60-110:6';
$myArray['minimaalformaat'] = '10x3';
$myArray['maximaalformaat'] = '120x5000';
$myArray['breedte'] = '12';
$myArray['hoogte'] = '4';
$myArray['aantal'] = '1';
$myArray['Lijmlaag'] = 'Wit(prijsberekening)+($m2*4)';
$basisstafel=$myArray['basisstaffel'];
$tmp = explode(";", $basisstafel);
foreach ($tmp as $ind){
$newArray[]=$ind.';';
}
echo "<pre>";
print_r($newArray);
echo "</pre>";
$newArray=array();
$myArray=array();
$myArray['basisprijs']='17,00';
$myArray['basisstaffel']='3-10:17;10-20:14;20-30:12;30-40:10;40-50:7,50;50-60:6,50;60-110:6';
$myArray['minimaalformat']='10x3';
$myArray['MaximaalFormat']='120x5000';
$myArray['breedte']='12';
$myArray['hoogte']='4';
$myArray['aantal']='1';
$myArray['Lijmlaag']='Wit(prijsberekening)+($m2*4)';
$basisstafel=$myArray['basisstaffel'];
$tmp=爆炸(“;”,$basisstafel);
foreach($tmp作为$ind){
$newArray[]=$ind.;';
}
回声“;
打印(新数组);
回声“;
您可以使用preg\u split
和preg\u split\u DELIM\u CAPTURE
标志。
这将返回分隔符为0、匹配符为1的匹配数组
PREG_SPLIT_DELIM_CAPTURE
如果设置了此标志,分隔符模式中的括号表达式也将被捕获并返回。您可以使用preg\u split
和preg\u split\u DELIM\u CAPTURE
标志。
这将返回分隔符为0、匹配符为1的匹配数组
PREG_SPLIT_DELIM_CAPTURE
如果设置了此标志,分隔符模式中的括号表达式也将被捕获并返回。
看起来在之后有换行符代码>这样您就可以按空格preg_分割
:
$result=preg_split('/\s+/',$input['basisstaffel']);
要避免第一个空项,请添加PREG\u SPLIT\u NO\u empty
标志:
$result=preg_split('/\s+/',$input['basisstaffel'],-1,preg_split_NO_EMPTY);
或者只需将分解与\n
或\r\n\
一起使用即可(您必须知道换行符的类型):
$result=explode(“\n”,$input['basisstaffel']);
看起来在之后有换行符代码>这样您就可以按空格preg_分割
:
$result=preg_split('/\s+/',$input['basisstaffel']);
要避免第一个空项,请添加PREG\u SPLIT\u NO\u empty
标志:
$result=preg_split('/\s+/',$input['basisstaffel'],-1,preg_split_NO_EMPTY);
或者只需将分解与\n
或\r\n\
一起使用即可(您必须知道换行符的类型):
$result=explode(“\n”,$input['basisstaffel']);
您是否尝试过在“\n”
上爆炸?因为似乎每一位都在新行上。不确定您在basisstaffel
中存储值的方式,这不是标准化的,最好在数据库中拆分@KIKOSoftware谢谢我会试试的。Nigel ren是的,我知道,但我使用的CMS有一些限制,所以我必须这样存储它。您可以尝试explode
或preg\u split
是否尝试在“\n”
上进行分解?因为似乎每一位都在新行上。不确定您在basisstaffel
中存储值的方式,这不是标准化的,最好在数据库中拆分@KIKOSoftware谢谢我会试试的。Nigel ren是的,我知道,但我使用的CMS有一些限制,所以这就是我必须存储它的方式。您可以尝试explode
或preg_split
不工作,因为使用preg_split_DELIM_CAPTURE,它将返回代码>作为单独的数组项。不,它不起作用,因为使用PREG_SPLIT_DELIM_CAPTURE,它将返回代码>作为单独的数组项。