php - 如何在 PHP 中检查 key 是否设置

标签 php arrays

如何在 PHP 中检查数组的键是否已设置

如何区分两者?

$a = [
          'a' => ['key' => 'value'],
          ['key' => 'value']
        ];
$a = [
          'a' => ['key' => 'value'],
          '0' => ['key' => 'value']
        ];

不同的是第一个没有索引号 但默认值为 0 (['key' => 'value']) 但第二个索引为 0 ('0' => ['key' => 'value'])

注意:检查键是否是数字数组是没有意义的,因为用户可能会给出数字。

最佳答案

您的问题没有答案,因为这两个数组没有不同:它们只是编写同一事物的不同方式。

要理解我的意思,请考虑这个问题:

How can I tell the difference between the integer 1 + 3 and the integer 2 + 2?

当你查看$a = 1 + 3;$a = 2 + 2;的源代码时,你可以看到区别;但是当 PHP执行该代码时,在这两种情况下它都会分配值4。您无法编写代码来检查 $a 并找出为什么它是 4,或者它是如何计算的。

您显示的两个数组文字也是如此。尽管它们在源代码中看起来不同,但一旦执行,PHP 将在这两种情况下分配相同的数组值

“规范”版本实际上如下所示:

$a = [
   'a' => ['key' => 'value'],
   0 => ['key' => 'value']
];

字符串'0'被认为与整数0相同的键,没有写入索引的条目按顺序分配整数索引,从0开始。

关于php - 如何在 PHP 中检查 key 是否设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66738299/

相关文章:

php - AngularJS 从数据库插入并显示

PHP:使用 LIKE 选择器时防止 SQL 注入(inject)

php - 运行代码时遇到运行时异常

php - 在 HTML/PHP 中输​​入 RGB 值的框中显示颜色

java - JSON 对象数组转 Java POJO

C:对多维数组中 < 0 的值求和

java - 骰子的随机数(帮助)

PHP 5.3.2 和 Zend Framework session

java - 为什么这段代码的输出是111111?

c - 自动边界检查?