2011-09-27 57 views
0

刪除所有的數組值我有一個具有120左右偏移量的數組,我想知道如何在包含指定字符串的特定偏移量後刪除所述數組的所有值。例如:Offset [68]具有字符串'Overflow'。我想刪除所有包括68及以後的內容,並重新構建數組(使用它的當前排序)。從一個特定的偏移量和

我嘗試了切片和拼接,但我似乎無法得到它返回正確的值。我也想過只是抓住包含'Overflow'的偏移號碼,然後通過for語句循環顯示直到$i = count($array);,但看起來似乎比應該更密集一點。

這將是最好的方法是什麼?還是有一些功能來做到這一點,我只是用錯了?

+0

爲什麼不['array_slice'](http://us.php.net/manual /en/function.array-slice.php)爲你工作? –

回答

1

使用array_slice()

$desired = array_slice($input, 0, $upTo); 
+0

哦。 array_slice工作正常。我只是不知道,我的一些偏移都沒有設置,所以我得到的,因爲缺少偏移的問題與我的數組[0] [2] [6]等,現在工作得很好。謝謝! –

0

首先,您需要在數組中找到字符串出現次數,如果找到該值,則從該點開始修剪數組;

function removeString($string, $array) 
{ 
    # search for '$string' in the array 
    $found = array_search($string, $array); 

    if ($found === false) return $array; # found nothing 

    # return sliced array 
    return array_slice($array, $found); 
} 

如果你需要使陣列順序(以避免由於缺少偏移驚喜),你可以在第一行$array = array_values($array)隨時添加。這將重新組織一個新的數組的數組值具有有序偏移:0,1,2,3,4 ...