3 回答

TA貢獻1842條經(jīng)驗 獲得超21個贊
對于前兩個示例案例,您可以使用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()循環(huán)而$kv在循環(huán)內(nèi)部分配。
foreach ($broken as $k => $v) {
$kv = [$k, $v];
}
對于第四種情況,看起來密鑰被忽略list(),因此您可以分配當前值。
$this->result = current($this->cache_data);
與前兩種情況一樣,可能需要next()根據(jù)代碼的其余部分如何與之交互來推進光標$this->cache_data。
第五個可以用for()循環(huán)代替。
reset($array);
for ($i = 0; $i < 30; $i++) {
$id = key($array);
$item = current($array);
// code
next($array);
}

TA貢獻1856條經(jīng)驗 獲得超17個贊
你可以each()使用key(),current()和next()創(chuàng)建自己的函數(shù)。然后用該函數(shù)替換你的調(diào)用,如下所示:
<?php
function myEach(&$arr) {
$key = key($arr);
$result = ($key === null) ? false : [$key, current($arr), 'key' => $key, 'value' => current($arr)];
next($arr);
return $result;
}
1。
$ar = $o->me;
reset($ar);
list($typ, $val) = myEach($ar);
2。
$out = array('me' => array(), 'mytype' => 2, '_php_class' => null);
$expected = myEach($out);
3。
for(reset($broken);$kv = myEach($broken);) {...}

TA貢獻1794條經(jīng)驗 獲得超7個贊
reset($array);
while (list($key, $value) = each($array)) {
UPDATE
reset($array);
foreach($array as $key => $value) {
- 3 回答
- 0 關(guān)注
- 627 瀏覽
添加回答
舉報