PHP:语法错误帮助预期;

时间:2010-11-09 11:32:34

标签: php syntax-error

有人可以帮我弄清楚为什么我这个函数出现语法错误:

function removeFromArray(&$array, $key){
        foreach($array as $j=>$i){
            if($i == $key){
                $array = array_values(unset($array[$j])); //error on this line says expected ;
                return true;
                break;
            }
        }
}

最值得赞赏的任何帮助!

Jonesy

5 个答案:

答案 0 :(得分:4)

删除array_values。您似乎只想删除一个值,unset已经在执行此任务:

function removeFromArray(&$array, $key){
    foreach($array as $j=>$i){
        if($i == $key){
            unset($array[$j]);
            return true;
        }
    }
}

More about unset

Demo


旁注:

  • return之后的代码不再执行,因此break是不必要的。
  • $key在这里是一个误导性的变量名称。更好的是$value

更新:如果您想重新索引数组的值(如果您有数字数组),则必须分两步完成(如{ {1}}不返回值):

unset

Demo

答案 1 :(得分:2)

您是否尝试在array_values中使用unset函数?你期待在这里发生什么?

你应该可以使用:     未设置($阵列[$ J]);

当你通过引用传递数组时,这应该足以删除它。无需使用数组值。

答案 2 :(得分:2)

问题是未解决的问题。 array_values期望数组作为参数,但unset没有任何返回值。

答案 3 :(得分:1)

我知道你要做什么,我建议你改用它:

function removeFromArray(&$array, $key){
        foreach($array as $j=>$i){
            if($i == $key){
                unset($array[$j]);
            }
        }
}

您实际上不需要返回任何内容。 unset是一个无效函数。

答案 4 :(得分:0)

取消设置不会返回任何内容:

void unset ( mixed $var [, mixed $var [, mixed $... ]] )