Php 使用引用删除数组元素的最佳方法是什么
假设我对一个数组使用一个Php 使用引用删除数组元素的最佳方法是什么,php,reference,foreach,Php,Reference,Foreach,假设我对一个数组使用一个foreach循环,并且每个元素的值都是引用,我想删除一个元素,我该怎么做呢 $array = array("1" => "PHP code tester Sandbox Online", "foo" => "bar", 6, 5 => 89009, "case" => "Random Stuff", "
foreach
循环,并且每个元素的值都是引用,我想删除一个元素,我该怎么做呢
$array = array("1" => "PHP code tester Sandbox Online",
"foo" => "bar",
6,
5 => 89009,
"case" => "Random Stuff",
"PHP Version" => phpversion()
);
foreach( $array as &$d ){
if($d == 5) unset($d);
}
但它什么也没做。使用foreach有没有办法做到这一点,或者我必须研究其他解决方案?这也可以在没有参考的情况下完成
foreach( $array as $d ){
if($d == 5) unset($array[$d]);
}
编辑
您刚刚更新了问题,不能有两个同名索引。索引
5
两次无效我想你要做的是删除数组中其值为5的元素,
在这种情况下,你必须写:
foreach ($array as $d => $v) {
if ($d == 5)
unset ($array[$d]);
}
foreach($array as$v)
正在枚举数组的值,而不是它的键
更多信息请参见,如果您试图基于键而非值删除数组元素,则无需执行循环if语句。您可以显式地取消设置该键,就像您的示例中所示,它看起来好像您正在尝试执行以下操作:
unset($array[5]);
如果有一个要删除的键列表,则可以在foreach数组中执行此操作
$array = array("1" => "PHP code tester Sandbox Online",
"foo" => "bar",
6,
5 => 89009,
"case" => "Random Stuff",
"PHP Version" => phpversion()
);
$remove = array('5', 'foo', 'case');
foreach ($remove as $r){
unset($array[$r]);
};
在
“foo”=>“bar”之后有一个单键输入
谢谢。我对格式做了一些调整,以突出显示这一点。@GeorgeCummins Thanksy您不能在同一数组中重复一个索引。在上面的代码中,索引5正在被重复,因此将被覆盖,并对此进行更新。谢谢,如果值为5,您是否取消设置其键为5的数组元素?这有意义吗?我很确定foreach($array as$d)
正在枚举数组的值,而不是它的键。。