Php 从关联数组中删除关键帧
我想根据该值删除某个值。示例在这种情况下,我想从数组中删除Php 从关联数组中删除关键帧,php,arrays,key,unset,Php,Arrays,Key,Unset,我想根据该值删除某个值。示例在这种情况下,我想从数组中删除Tom,然后下一个数据将继续使用Tom以前使用的数字 下面是我的例子: $array = array(0 => "Emily", 1 => "Tom", 2 => "Peter"); if ($k = array_search($csR, $array)!==false) unset($array[$k]); 结果应该是: array(0 => "Emily", 1 =&g
Tom
,然后下一个数据将继续使用Tom
以前使用的数字
下面是我的例子:
$array = array(0 => "Emily", 1 => "Tom", 2 => "Peter");
if ($k = array_search($csR, $array)!==false)
unset($array[$k]);
结果应该是:
array(0 => "Emily", 1 => "Peter");
由于您使用的是索引数组,因此实现此目的的最佳方法是使用
直接从 注: 函数的作用是:从数组中删除键。请注意,阵列将不会重新编制索引。如果需要真正的“删除并移动”行为,可以使用array_values()函数重新为数组编制索引
<?php
$a = array(1 => 'one', 2 => 'two', 3 => 'three');
unset($a[2]);
/* will produce an array that would have been defined as
$a = array(1 => 'one', 3 => 'three');
and NOT
$a = array(1 => 'one', 2 =>'three');
*/
$b = array_values($a);
// Now $b is array(0 => 'one', 1 =>'three')
?>
您可以使用
Tom
或$csR>获取数组和数组之间的差异,然后重新索引:
$array = array_values(array_diff($array, [$csR]));
但是,很少需要顺序键。您是否尝试过使用foreach
而不是for
?使用array\u值来“修复”键。您放弃了吗???我是否可以知道,在删除第二个键后,我是否仍希望总共有3个键?unset将删除该键,这意味着您将少用一个键。您可以使用类似于$array[3]='four'
$array = array_values(array_diff($array, [$csR]));