我使用简单的php unset()函数来删除和索引数组,但它显示错误
Parse error: syntax error, unexpected 'unset' (T_UNSET)
错误。这是syntex
echo $totalArray = unset($linkExtHelp[0]);
提前致谢。
答案 0 :(得分:19)
试试这个,unset($linkExtHelp[0])
分配给变量echo $totalArray =
的原因
您无法将unset()
值分配给变量,您可以在取消设置之前和未设置之后进行检查,如下所示。换句话说,unset
没有任何返回值,因为unset
是一个空白。 Void - 不向其调用者提供结果值。
语法: void unset(混合$ var [,混合$ ...])
echo "Before unset:",$linkExtHelp[0];
unset($linkExtHelp[0]);
echo "After unset:",$linkExtHelp[0];
而不是
echo $totalArray = unset($linkExtHelp[0]);
答案 1 :(得分:7)
unset
不返回值 - 即使接受了这样的制作,也不能有意义地用作表达式。
然而,解析错误是由于unset
is a keyword和“特殊制作”引起的:即使unset
看起来像一个函数,它也不是函数 1 。因此,unset
仅作为语言语法的语句 2 有效。
309 unticked_statement:
| ..
338 | T_UNSET '(' unset_variables ')' ';'
1 语法归因于历史设计选择,可以说从一致性角度来看是错误的:
注意:因为 [unset]是一种语言结构而不是函数,所以不能使用变量函数调用它。
2 还有“(未设置)施法”,但我忽略了这一点。
答案 2 :(得分:0)
您无法指定"取消设置"。这就是我的方式。 你需要制作一个临时数组。
$totalArray = $linkExtHelp; // assign it to a new array (so you can keep the original one )
foreach ($totalArray as $key => $value) {
unset($totalArray [$key]['save_day']); // if you need to remove all of 'save_day' value from multi array
}
var_dump($totalArray); // after unset
var_dump($linkExtHelp); // the original array
//echo $totalArray = unset($linkExtHelp[0]); // This is wrong. no echo
我希望它有所帮助。
答案 3 :(得分:0)
我假设您想为数组重新索引,可以使用array_values
来完成此操作
尝试一下:
unset($linkExtHelp[0]);
$totalArray = array_values($linkExtHelp);