我的大腦壞了。這裏的概念:從數組中刪除子項,其中子項是該項的最後一項
$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