內修改號碼我有一個這樣的字符串:字符串PHP
$string = "1,4|2,64|3,0|4,18|";
這是一個逗號後訪問一些最簡單的方法是什麼?
舉例來說,如果我有:
$whichOne = 2;
如果whichOne
等於2
,然後我希望把64
一個字符串,並添加了一些給它,然後把它回來的地方屬於(2,
旁邊)
希望你明白!
內修改號碼我有一個這樣的字符串:字符串PHP
$string = "1,4|2,64|3,0|4,18|";
這是一個逗號後訪問一些最簡單的方法是什麼?
舉例來說,如果我有:
$whichOne = 2;
如果whichOne
等於2
,然後我希望把64
一個字符串,並添加了一些給它,然後把它回來的地方屬於(2,
旁邊)
希望你明白!
genesis'es回答與修改
$search_for = 2;
$pairs = explode("|", $string);
foreach ($pairs as $index=>$pair)
{
$numbers = explode(',',$pair);
if ($numbers[0] == $search_for){
//do whatever you want here
//for example:
$numbers[1] += 100; // 100 + 64 = 164
$pairs[index] = implode(',',$numbers); //push them back
break;
}
}
$new_string = implode('|',$pairs);
$numbers = explode("|", $string);
foreach ($numbers as $number)
{
$int[] = intval($number);
}
print_r($int);
$string = "1,4|2,64|3,0|4,18|";
$coordinates = explode('|', $string);
foreach ($coordinates as $v) {
if ($v) {
$ex = explode(',', $v);
$values[$ex[0]] = $ex[1];
}
}
要查找的值,例如,2,你可以使用$whichOne = $values[2];
,這是64
我似乎錯過了你的問題的第二部分;維塔利的答案應該適合你的需求。 – drfranks3
我認爲這是更好像其他人所建議的那樣使用這個foreach,但是你可以像下面這樣做:
$string = "1,4|2,64|3,0|4,18|";
$whichOne = "2";
echo "Starting String: $string <br>";
$pos = strpos($string, $whichOne);
//Accomodates for the number 2 and the comma
$valuepos = substr($string, $pos + 2);
$tempstring = explode("|", $valuepos);
$value = $tempstring[0]; //This will ow be 64
$newValue = $value + 18;
//Ensures you only replace the index of 2, not any other values of 64
$replaceValue = "|".$whichOne.",".$value;
$newValue = "|".$whichOne.",".$newValue;
$string = str_replace($replaceValue, $newValue, $string);
echo "Ending String: $string";
這導致:
Starting String: 1,4|2,64|3,0|4,18|
Ending String: 1,4|2,82|3,0|4,18|
您可能會遇到的問題,如果有2個以上的指標......這隻會有2
希望的第一個實例這有助於工作!
我知道這個問題已經回答了,但我做了一個在線解決方案(也許它的速度更快,太):
$string = "1,4|2,64|3,0|4,18|";
$whichOne = 2;
$increment = 100;
echo preg_replace("/({$whichOne},)(\d+)/e", "'\\1'.(\\2+$increment)", $string);
例如,在控制檯上運行:
noice-macbook:~/temp% php 6642400.php
1,4|2,164|3,0|4,18|
如果我只想編輯一個數字,是否必須遍歷整個數組?我剛剛舉了一個例子,我原來的字符串要長得多。沒有辦法搜索例如「2」,然後在「|」之前採用以下數字? – Daniel
沒有。如果你要搜索2,它可能會發現12而不是 – genesis
我的意思是2後用逗號「2」, – Daniel