我正在尝试循环访问PHP数组,但我只是收回了原始数据。我认为这与我打破循环时有关
$newData = $this->seperateKeyValuePairs($data);
private function seperateKeyValuePairs($array)
{
foreach($array as $key => $item)
{
if( is_array($item) ) $this->seperateKeyValuePairs($item);
if( is_string($key) && $this->stringStartsWith($key, 'is_') ) {
$item = $this->makeBoolean($item);
}
}
return $array;
}
答案 0 :(得分:1)
我认为问题出在这一行:
$item = $this->makeBoolean($item);
您可以更改项目的值。 Item不是指向数组中值的指针,而是指向它的副本,因此数组中的值保持不变。你想要做的是:
$array[$key] = $this->makeBoolean($item);
本着同样的精神,你必须改变
if( is_array($item) ) $this->seperateKeyValuePairs($item);
到
if( is_array($item) ) $array[$key] = $this->seperateKeyValuePairs($item);