【问题标题】:array key initial value数组键初始值
【发布时间】:2010-01-28 16:59:19
【问题描述】:

我想将我的数组键初始值设置为某个数字。 这是我所拥有的:

$tickets=array();
array_push($tickets,"10","20","TBD")

for($i=3; $i<20; $i++)

我希望我的数组初始值从 3 而不是 0 开始。

任何想法

【问题讨论】:

    标签: php arrays key


    【解决方案1】:

    使用$tickets[3]=$value 手动设置您的第一个值,PHP 将开始将$tickets[] 放在下一个索引处(4,然后是 5,等等)。

    【讨论】:

    • 正如文档中明确指出的那样:语法index =&gt; values,用逗号分隔,定义索引和值。 index 可以是字符串或整数类型。 (...) 如果 index 是一个整数,下一个生成的索引将是最大的整数 index + 1. php.net/manual/en/function.array.php
    【解决方案2】:

    如果您正在那里初始化 $tickets,为什么不使用数组字面量?

    $tickets=array(3=>10, 4=>20, 5=>'TBD');
    print_r($tickets);
    

    打印

    Array
    (
        [3] => 10
        [4] => 20
        [5] => TBD
    )
    

    编辑和顺便说一句:这也适用于两个地方的变量,键和值。因此

    $x = 5;
    $y = 'TBD';
    $tickets=array(3=>10, 4=>20, $x=>$y);
    print_r($tickets);
    

    具有相同的输出以及

    $tickets=array( /* initial index here */ 3=>10, 20, 'TDB');
    print_r($tickets);
    

    【讨论】:

      【解决方案3】:

      $start_key 设置为3,并使用range() 创建密钥集。使用array_combine() 组合成你想要的数组设置:

      $tickets = array();
      array_push($tickets,"10","20","TBD");
      print_r($tickets);
      // This is the zero-indexed array that occurs by default:
      // Array
      // (
      //     [0] => 10
      //     [1] => 20
      //     [2] => TBD
      // )
      
      $start_key = 3;
      $tickets = array_combine(range($start_key,count($tickets)+($start_key-1)), $tickets);
      print_r($tickets);
      
      // Now you have an array whose keys start at 3:
      // Array
      // (
      //     [3] => 10
      //     [4] => 20
      //     [5] => TBD
      // )
      

      【讨论】:

        【解决方案4】:

        这行得通吗?

        $tickets = array();
        for ($i=3; $i<20; $i++) {
          $tickets[$i] = 'TBD';
        }
        

        【讨论】:

        • 是的,但我想从 10 等访问整个数组,其中初始数组 [3] = 10,但我没有得到它。所以数组[5]=待定
        猜你喜欢
        • 1970-01-01
        • 2021-06-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-07-21
        • 2021-04-08
        • 2011-07-30
        • 1970-01-01
        相关资源
        最近更新 更多