修改用逗号分隔的字符串php中的数字

时间:2014-09-19 09:50:43

标签: 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,

1 个答案:

答案 0 :(得分: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;

?>

你遇到的问题是你没有正确地解构和重建阵列数组。以上是我对你的问题的回答基于,的双重爆炸然后是这些分隔符的双重内爆。在循环中,它检查其中一个数组的第一项,然后修改数组的第二个数字。您可以将其置于近函数格式中以便快速重用。