2014-09-19 33 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; 

?> 

你有問題是你沒有正確地解構和重建數組的數組。以上是我對你的問題的回答,基於,,然後雙擊這些分隔符。在循環中,它檢查其中一個數組的第一項,然後修改數組的第二個數字。你可以把它放在一個接近函數的格式中快速重用。