我的大脑坏了。这里的概念:从数组中删除子项,其中子项是该项的最后一项
$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的最后的值(最后2,3和1分别) $ I] [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一个新的数组消除()使用未设置产生的间隙。
这不会删除每种类型的第一个吗?由于您从最后开始并开始使用,每次使用[bla]中写入的最后一个索引是第一个。 – STEELHE4RT 2013-04-05 20:59:43
无论哪种方式,谢谢。我能够将您的代码调整为可行的解决方案。 – STEELHE4RT 2013-04-05 21:14:00
没问题,...我也修正了这里的代码;) – bwoebi 2013-04-05 21:16:51