php 給一個有序數組 空的key賦值

來源:互聯網
上載者:User
有一個數組=>
$arr = array(        '0' => 'a value',        '1' => 'a value',        '2' => 'a value',        '4' => 'a value',        '5' => 'a value',        '7' => 'a value',        '10' => 'a value',        '11' => 'a value',        '12' => 'a value',    );

同時,我有一個
$num

假定
$num=15


此時,我想得到這個數組=>
$arr = array(        '0' => 'a value',        '1' => 'a value',        '2' => 'a value',        '3' => 'kong',        '4' => 'a value',        '5' => 'a value',        '6' => 'kong',        '7' => 'a value',        '8' => 'kong',        '9' => 'kong',        '10' => 'a value',        '11' => 'a value',        '12' => 'a value',        '13' => 'kong',        '14' => 'kong',        '15' => 'kong',    );



請問有什麼便捷、快速的方法,產生這個數組


回複討論(解決方案)

$arr = array('0' => 'a value','1' => 'a value','2' => 'a value','4' => 'a value','5' => 'a value','7' => 'a value','10' => 'a value','11' => 'a value','12' => 'a value',);$num=15;$tmp = range(0,$num);$keys = array_keys($arr);$kongArr = array_fill_keys(array_diff($tmp,$keys),'kong');//因為是數字索引,若使用 array_merge 會重新索引,不能排序foreach($kongArr as $k=>$v){$arr[$k] = $v;}ksort($arr);echo "
";print_r($arr);echo "
";/*Array( [0] => a value [1] => a value [2] => a value [3] => kong [4] => a value [5] => a value [6] => kong [7] => a value [8] => kong [9] => kong [10] => a value [11] => a value [12] => a value [13] => kong [14] => kong [15] => kong)*/

沒那麼複雜

$arr = array(  '0' => 'a value',  '1' => 'a value',  '2' => 'a value',  '4' => 'a value',  '5' => 'a value',  '7' => 'a value',  '10' => 'a value',  '11' => 'a value',  '12' => 'a value',);$num = 15;$b = $arr + array_fill(0, $num+1, 'kong');ksort($b);print_r($b);
Array(    [0] => a value    [1] => a value    [2] => a value    [3] => kong    [4] => a value    [5] => a value    [6] => kong    [7] => a value    [8] => kong    [9] => kong    [10] => a value    [11] => a value    [12] => a value    [13] => kong    [14] => kong    [15] => kong)
  • 聯繫我們

    該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

    如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

    A Free Trial That Lets You Build Big!

    Start building with 50+ products and up to 12 months usage for Elastic Compute Service

    • Sales Support

      1 on 1 presale consultation

    • After-Sales Support

      24/7 Technical Support 6 Free Tickets per Quarter Faster Response

    • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.