我的大脑坏了。这是概念:
$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)。 / p>
- 编辑: 根据评论改编建议:
$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()创建的间隙。
答案 0 :(得分:0)
遍历$myArray
,保存$otherArray
中各种姓名的最后一个位置,循环显示$otherArray
中$myArray
未提交的项目。就是这样。
答案 1 :(得分:0)
$i = count($myArray);
$used = array();
while ($i-- > 0)
if (!isset($used[$myArray[$i][1]])) {
$used[$myArray[$i][1]] = true;
unset($myArray[$i]);
}
这个简单的代码段首先从数组的后面进行迭代,如果尚未删除带有此数字的条目,则删除索引。