Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP如何为数组设置键?_Php_Arrays - Fatal编程技术网

PHP如何为数组设置键?

PHP如何为数组设置键?,php,arrays,Php,Arrays,我有一个数组: $a = array('color' => 'green', 'format' => 'text', 'link_url'); 还有一个: $b = array('zero', 'one', 'two', 'three', 'test' => 'ok', 'four'); 我有一个这样的数组: Array ( [color] => green [format] => text [0] => link_url

我有一个数组:

$a = array('color' => 'green', 'format' => 'text', 'link_url');
还有一个:

$b = array('zero', 'one', 'two', 'three', 'test' => 'ok', 'four');
我有一个这样的数组:

Array
(
    [color] => green
    [format] => text
    [0] => link_url
    [1] => zero
    [2] => one
    [3] => two
    [4] => three
    [test] => ok
    [5] => four
)
Array
(
    [color] => green
    [format] => text
    [2] => link_url
    [3] => zero
    [4] => one
    [5] => two
    [6] => three
    [test] => ok
    [8] => four
)
为什么PHP会像上面那样设置数组键?为什么不这样:

Array
(
    [color] => green
    [format] => text
    [0] => link_url
    [1] => zero
    [2] => one
    [3] => two
    [4] => three
    [test] => ok
    [5] => four
)
Array
(
    [color] => green
    [format] => text
    [2] => link_url
    [3] => zero
    [4] => one
    [5] => two
    [6] => three
    [test] => ok
    [8] => four
)
从中引用原始数组定义:

该键是可选的。如果未指定,PHP将使用以前使用的最大整数键的增量

从以下文件:

如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个值。但是,如果数组包含数字键,则后面的值将不会覆盖原始值,而是追加

带有数字键的输入数组中的值将在结果数组中以从零开始递增的键重新编号

因此,所有这些都非常明确地记录了

引用原始数组定义:

该键是可选的。如果未指定,PHP将使用以前使用的最大整数键的增量

从以下文件:

如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个值。但是,如果数组包含数字键,则后面的值将不会覆盖原始值,而是追加

带有数字键的输入数组中的值将在结果数组中以从零开始递增的键重新编号


因此,所有这些都有明确的文档记录

如果您查看原始数组,应该很清楚:

array(3) {
  ["color"]=>
  string(5) "green"
  ["format"]=>
  string(4) "text"
  [0]=>
  string(8) "link_url"
}

好吧,如果你看一下原始数组,应该很清楚:

array(3) {
  ["color"]=>
  string(5) "green"
  ["format"]=>
  string(4) "text"
  [0]=>
  string(8) "link_url"
}

您似乎假设了一个排序或与非数字键的一致性,而这是不存在的

数字键有一个顺序,这在它们的新值中表示;字符串键不是该排序系统的一部分,因此不会影响这些新的数值


这就是它的简单方式,而且完全有意义。

您似乎假设了一个与非数字键的排序或一致性,而这是不存在的

数字键有一个顺序,这在它们的新值中表示;字符串键不是该排序系统的一部分,因此不会影响这些新的数值


这就是它的简单方式,而且完全有意义。

这是因为数字ID与可见索引是分开计算的。字符串索引没有编号,也不计数

这是因为数字ID与查看索引是分开计算的。字符串索引没有编号,也不计数

请检查文档:

如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个值。但是,如果数组包含数字键,则后面的值将不会覆盖原始值,而是追加

带有数字键的输入数组中的值将在结果数组中以从零开始递增的键重新编号

参考:

请检查文档:

如果输入数组具有相同的字符串键,则该键的后一个值将覆盖前一个值。但是,如果数组包含数字键,则后面的值将不会覆盖原始值,而是追加

带有数字键的输入数组中的值将在结果数组中以从零开始递增的键重新编号


参考:

虽然正确,但这并不严格相关,因为虽然正确,但这并不严格相关,因为