对于前两个示例案例,您可以使用key()和current()分配所需的值。
$ar = $o->me; // reset isn't necessary, since you just created the array
$typ = key($ar);
$val = current($ar);
$out = array('me' => array(), 'mytype' => 2, '_php_class' => null);
$expected = [key($out), current($out)];
在这些情况下,您可以使用next()以后推进光标,但如果其余代码不依赖于此,则可能没有必要。
对于第三种情况,我建议只使用foreach()循环而$kv在循环内部分配。
foreach ($broken as $k => $v) {
$kv = [$k, $v];
}
对于第四种情况,看起来密钥被忽略list(),因此您可以分配当前值。
$this->result = current($this->cache_data);
与前两种情况一样,可能需要next()根据代码的其余部分如何与之交互来推进光标$this->cache_data。
第五个可以用for()循环代替。
reset($array);
for ($i = 0; $i < 30; $i++) {
$id = key($array);
$item = current($array);
// code
next($array);
}