我有一串数字。数字以三个一组显示。我想根据集合中的第一个数字更改集合中的第二个数字。
到目前为止,这是我的代码。
$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,
答案 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;
?>
你遇到的问题是你没有正确地解构和重建阵列数组。以上是我对你的问题的回答基于,
和的双重爆炸然后是这些分隔符的双重内爆。在循环中,它检查其中一个数组的第一项,然后修改数组的第二个数字。您可以将其置于近函数格式中以便快速重用。