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

Php 如何迭代数组中的数字键,以便在同一数组中新创建的对象中访问它们?,php,casting,Php,Casting,考虑以下代码段: <?php $obj = (object) array('1' => 'foo'); var_dump(isset($obj->{'1'})); // outputs 'bool(false)' var_dump(key($obj)); // outputs 'int(1)' ?> 您可以从输出中看到,将数组$obj转换为对象后,我无法访问数组的键(即'1')作为对象属性及其相应的值(即'foo') 如何使它们易于访问?这里有一个技巧,而不

考虑以下代码段:

<?php
  $obj = (object) array('1' => 'foo');
  var_dump(isset($obj->{'1'})); // outputs 'bool(false)'
  var_dump(key($obj)); // outputs 'int(1)'
?>
您可以从输出中看到,将数组
$obj
转换为对象后,我无法访问数组的键(即
'1'
)作为对象属性及其相应的值(即
'foo'


如何使它们易于访问?

这里有一个技巧,而不是使用类型转换

$obj = array('1' => 'foo');
$obj = json_decode(json_encode($obj));    
echo $obj->{'1'};
//它将输出“foo”

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