我的脑子坏了。这是概念:
$a = array('please', 2);
$s = array('help', 3);
$d = array('me', 1);
$f = array('!', 3);
$g = array('asdf', 1);
$myArray = array($a, $s, $d, $f, $g);
for ($i = 0; $i < count($myArray); $i++) {
// code here
}
代码应该包含从 myArray 中删除索引 0、3 和 4 的逻辑,因为它们在 $myArray[$i][1] 位置包含其种类的最后一个值(分别为最后 2、3 和 1)。
--编辑:从评论中改编的建议得到这个:
$a = array('please', 2);
$s = array('help', 3);
$d = array('me', 1);
$f = array('!', 3);
$g = array('asdf', 1);
$myArray = array($a, $s, $d, $f, $g);
$used = array();
for ($i = 0; $i < count($myArray); $i++) {
$used[$myArray[$i][1]] = $i;
}
foreach ($used as $deleteMe)
unset($myArray[$deleteMe]);
$newArray = array_values($myArray);
var_dump($newArray);
它有效,并且使用 array_values 创建一个新数组消除了使用 unset() 创建的间隙。