我有一個逗號分隔的數值列表。該字符串將只有數字列表。重新排列逗號分隔值
實施例:52,187,65,278,288,45,621
我想一個PHP功能,這將重新格式化的字符串,使得我可以指定號碼的位置。
如果我想45作爲第一個值,那麼我應該能夠指定45 = 0,則該功能將提供給我一個結果是45,52,187,65,278,288,621
功能也應該幫我指定的位置多個數字。
我有一個逗號分隔的數值列表。該字符串將只有數字列表。重新排列逗號分隔值
實施例:52,187,65,278,288,45,621
我想一個PHP功能,這將重新格式化的字符串,使得我可以指定號碼的位置。
如果我想45作爲第一個值,那麼我應該能夠指定45 = 0,則該功能將提供給我一個結果是45,52,187,65,278,288,621
功能也應該幫我指定的位置多個數字。
我能想到的最簡單的方法是在字符串上使用explode()
來創建數組,然後使用array_search()
來查找值。可能是一個很好的起點。
您可以使用此三個步驟
<?php
$myArray = explode(",", $myString);
$shortedArray = sort($myArray);
$shortedString = implode(",", $shortedArray);
echo $shortedString;
?>
第一你想用逗號$arr = explode(",",$string);
你那麼想匹配的選項,並在陣列中設置的地方爆炸它生成的字符串數組,嘗試使用array_search
進行搜索以獲取索引,將其與array_splice
一起抽出,然後按指定插入正確的索引。 你做了所有的排序與破滅重新走到一起加入數組後:$string = implode(",", $arr);
試試這個
<?php
$str='52,187,65,278,288,45,621';
$val ='45';
$array = array();
$array = explode(',',$str);
sort($array);
$i=0;
foreach ($array as $k) {
if ($k<$val){
unset ($array[$i]);
}
$i=$i+1;
}
print_r($array);
?>
這裏是長碼
<?php
$str = '52,187,65,278,288,45,621';
$orders = array(45 => 3,52=>2);
print_r(reOrder($str,$orders));
function reOrder($string,$orders){
$array = explode(',', $string);
$result = array();
foreach($array as $index=>$element){
if(isset($orders[$element])){
if(!isset($result[$orders[$element]])){
$result[$orders[$element]] = $element;
}
else{
$temp = $result[$orders[$element]];
$result[$orders[$element]] = $element;
$count = count($result);
$flag = 0;
for($i=0;$i<$count;$i++){
if(!isset($result[$i])){
$result[$i] = $temp;
$flag = 1;
break;
}
}
if($flag == 0){
$result[] = $temp;
}
}
}
else{
$count = count($result);
$flag = 0;
for($i=0;$i<$count;$i++){
if(!isset($result[$i])){
$result[$i] = $element;
$flag = 1;
break;
}
}
if($flag == 0){
$result[] = $element;
}
}
}
ksort($result);
return $result;
}
?>
我通常得到5個downvotes對於這樣的問題...請提供您迄今爲止的工作。 –
如果你指定278 = 335應該發生什麼?或65 = 2. – dfsq
您可以使用explode()的這個值創建一個數組,然後命令它,並再次implode() –