繁体   English   中英

使用 unset 从数组中删除创建值

[英]Deleting from array using unset creates values

$array = [ 0, 5, 7 ];

对于这个数组,我想在不分配值的情况下unset

当我unset($array[5])它将返回

{
    "0" => 0,
    "1" => 5,
    "2" => 7
}

但我的实际目标是让它像

[ 0, 7 ]

这样,当我使用json_encode时,它只会显示为

[ 
    0,
    7
]

这可能吗? 我用谷歌搜索,每个人都只是提到索引,但我正在考虑从数组中删除这个数字。 没有它重新索引或更改它的格式以具有值。

$array[]上括号内的参数实际上是数字索引或关联索引(PHP 中的数组是映射)。

在你的情况下,你想做:

unset($arr[1]);
$a = [0,5,7];
array_splice($a, 1, 1); // remove from position 1 - remove 1 entry

echo json_encode($a);

工作示例

output

[0,7]

参考

附加信息

Unset 不会按原样工作,因为它保留了初始键。

一个未设置的解决方案是使用array_values忽略键:

$a = [0,5,7];

unset($a[1]);
$a = array_values($a);

echo json_encode($a);

工作示例

与上述相同的 output。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM