亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

php有序數組插入一個元素后是數組仍然保持之前的順序

php有序數組插入一個元素后是數組仍然保持之前的順序

PHP
慕田峪9158850 2019-03-18 15:35:28
有一個數組,例如: $arr = [1,3,4,7,11,21,27,31,79]; 現在新插入一個元素,如$n = 23;插入后使數組仍然保持之前的順序,如何實現?要求,不能使用php內置函數,如使用sort。
查看完整描述

3 回答

?
斯蒂芬大帝

TA貢獻1827條經驗 獲得超8個贊

不明白不能使用內置函數什么意思,如果以下不能用count之類的,數組索引默認是0123,再循環出數組長度吧

$arr = [1,3,4,7,11,21,27,31,79];
$n = 2;
$j = 0;
$arr1 = [];
$lenth = count($arr);
for($i=0; $i < $lenth; $i++)
{
    if($i==0 && $n <= $arr[$i]){
        $arr1[$j] = $n;
        $j++;
        $arr1[$j] = $arr[$i];
    }elseif($arr[$i] < $n && ($n <= $arr[$i+1] || !$arr[$i+1])){
        $arr1[$j] = $arr[$i];
        $j++;
        $arr1[$j] = $n;
    }else{
        $arr1[$j] = $arr[$i];
    }
    $j++;
}

print_r($arr1);
查看完整回答
反對 回復 2019-03-18
?
阿波羅的戰車

TA貢獻1862條經驗 獲得超6個贊

隨手一個冒泡

$arr = [1,3,4,7,11,21,27,31,79];
$n = 23;

_sort($arr,$n);
echo _print_r($arr);

//不使用內置函數
function _sort(&$arr,$n)
{
    for($i = _count($arr); $i >= 0; $i--)
    {
        if(_isset($arr,$i - 1) and $arr[$i - 1] >= $n)
        {
            $arr[$i] = $arr[$i - 1];
        }
        else
        {
            $arr[$i] = $n;
            break;
        }
    }
}
function _isset($arr,$k)
{
    foreach($arr as $key => $value)
        if($key == $k)
            return TRUE;
    return FALSE;
}
function _count($arr)
{
    $count = 0;
    foreach($arr as $value)
        $count++;
    return $count;
}
function _print_r($arr)
{
    $count = _count($arr);
    $echo = '';
    foreach($arr as $key => $value)
        $echo .= $value.($key != $count - 1 ? ',' : '');
    return '['.$echo.']';
}
查看完整回答
反對 回復 2019-03-18
  • 3 回答
  • 0 關注
  • 884 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號