2014-09-19 37 views
0

我有一串数字。这些数字以三个为一组。我想根据集合中的第一个数字来更改集合中的第二个数字。修改字符串php中的数字,用逗号分隔

这是我的代码到目前为止。

$value='1 0 0,4 2 0,1 20 0,3 0 0,2 0 0,2 0 0,3 0 0,4 0 0,4 0 0,3 0 0,3 0 0,4 0 0,4 0 0,1 0 0,4 0 0,2 0 0,1 0 0,2 0 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 0,10 20 0,15 20 0,0 0 0,0 0 0,11 20 0,23 10 0,0 0 0,0 0 0,27 7 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 0,16 1 0,0 0 0'; 
$resouces_array=explode(',', $value); 

foreach ($resouces_array as $key=> $value) 
{ 
    $first_number =substr($value,0,2); 
    $second_number = explode(' ', $value); 

    // Part where I specify what the second number should be depending on the first number. 
    if($first_number == 23) 
    { 
     $second_number[1]= 50; 
    } 

    //$first_parts= explode(' ', $value); 
    $string_valo= implode(' ' ,$second_number); 
    $after_spli=str_pad($string_valo, 6,','); 
    echo $after_spli; 
} 

我想输出是这样的。

1 0 0,4 2 0,1 20 0,3 0 0,2 0 0,2 0 0,3 0 0,4 0 0,4 0 0,3 0 0,3 0 0,4 0 0,4 0 0,1 0 0,4 0 0,2 0 0,1 0 0,2 0 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 0,10 20 0,15 20 0,0 0 0,0 0 0,11 20 0,23 50 0,0 0 0,0 0 0,27 7 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 0,16 1 0,0 0 0'; 

但是我的代码产生了这个。

1 0 0,4 2 0,1 20 03 0 0,2 0 0,2 0 0,3 0 0,4 0 0,4 0 0,3 0 0,3 0 0,4 0 0,4 0 0,1 0 0,4 0 0,2 0 0,1 0 0,2 0 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 0,10 20 015 20 00 0 0,0 0 0,11 20 023 50 00 0 0,0 0 0,27 7 00 0 0,0 0 0,0 0 0,0 0 0,0 0 0,16 1 00 0 0, 
+2

那么你究竟想要发生什么事情呢?这是相当不清的 – iswinky 2014-09-19 09:57:32

+0

在我看来这并不是很清楚。有点缺乏英语不需要马上将其标记为不清楚。 – Rimble 2014-09-19 12:43:19

回答

1
<?php 

$value='1 0 0,4 2 0,1 20 0,3 0 0,2 0 0,2 0 0,3 0 0,4 0 0,4 0 0,3 0 0,3 0 0,4 0 0,4 0 0,1 0 0,4 0 0,2 0 0,1 0 0,2 0 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 0,10 20 0,15 20 0,0 0 0,0 0 0,11 20 0,23 10 0,0 0 0,0 0 0,27 7 0,0 0 0,0 0 0,0 0 0,0 0 0,0 0 0,16 1 0,0 0 0'; 
echo $value . '</br>'; 
$resouces_array=explode(',', $value); 

$output = array(); 

foreach ($resouces_array as $value) 
{ 
    $numbers = explode(' ', $value); 

    if($numbers[0] == 23) 
    { 
     $numbers[1] = 50; 
    } 

    $output[] = implode(' ', $numbers); 

} 

$output = implode(',', $output); 
echo $output; 

?> 

你有问题是你没有正确地解构和重建数组的数组。以上是我对你的问题的回答,基于,,然后双击这些分隔符。在循环中,它检查其中一个数组的第一项,然后修改数组的第二个数字。你可以把它放在一个接近函数的格式中快速重用。