如何迭代数组中的数字键,以便在同一个数组中新创建的对象中访问它们?

时间:2017-11-15 06:20:39

标签: php casting

请考虑以下代码段:

<?php
  $obj = (object) array('1' => 'foo');
  var_dump(isset($obj->{'1'})); // outputs 'bool(false)'
  var_dump(key($obj)); // outputs 'int(1)'
?>

网络浏览器中上述代码的输出如下:

bool(false) int(1)

您可以从输出中看到,在将数组$obj转换为对象后,我无法访问数组的键(即'1')作为对象属性,并且它具有相应的值(即'foo')?

如何使它们可访问?

1 个答案:

答案 0 :(得分:-1)

这是诀窍而不是使用类型转换

$obj = array('1' => 'foo');
$obj = json_decode(json_encode($obj));    
echo $obj->{'1'};
  

//它将输出'foo'