首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将数组值转换为新数组而不丢失任何字符

将数组值转换为新数组而不丢失任何字符
EN

Stack Overflow用户
提问于 2019-11-22 09:23:26
回答 4查看 65关注 0票数 0

我有一个看起来像这样的数组:

代码语言:javascript
复制
  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]中创建一个新数组,在每个;之后都会有一个新的行开始,因此所希望的结果是:

代码语言:javascript
复制
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;
)

我怎么能这么做?在explode上使用;会使我失去这部分值。还有别的办法吗?

第一个数组称为$productarray

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2019-11-22 09:35:57

您只需使用 again 函数,然后执行foreach循环并再次添加“;”符号,如下所示:

代码语言:javascript
复制
$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>";
票数 1
EN

Stack Overflow用户

发布于 2019-11-22 10:01:13

您可以使用preg_split并使用PREG_SPLIT_DELIM_CAPTURE标志。这将返回带有分隔符= 0,匹配=1的匹配数组。

https://www.php.net/manual/en/function.preg-split.php

如果设置了此标志,则将捕获并返回分隔符模式中括号大小的表达式。

票数 1
EN

Stack Overflow用户

发布于 2019-11-22 10:20:11

代码语言:javascript
复制
<?php 
$productArray = [
    '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 = explode(";", rtrim($productArray['basisstaffel'], ';'));

var_dump($basisstaffel);

Result : array(8) { [0]=> string(14) " 3-10:17" [1]=> string(14) " 10-20:14" [2]=> string(14) " 20-30:12" [3]=> string(14) " 30-40:10" [4]=> string(16) " 40-50:7,50" [5]=> string(16) " 50-60:6,50" [6]=> string(14) " 60-110:6" }
?>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58991096

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档