2011-09-27 85 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 ...