从Array中删除前2个

时间:2011-07-17 10:30:24

标签: php

我有这个简单的数组,我想知道如何阻止前2 段显示。

if(preg_match_all('/<td[^>]*class="sourceNameCell">(.*?)<\/td>/si', $printable, $matches, PREG_SET_ORDER));{
foreach($matches as $match) {

$data = "$match[1]";

    $array = array();
    preg_match( '/src="([^"]*)"/i', $data, $array ) ;
    print_r("$array[1]") ;
}

任何帮助都会很棒,谢谢!

4 个答案:

答案 0 :(得分:93)

使用array_slice

$output = array_slice($input, 2); 

答案 1 :(得分:9)

停止显示或删除?

删除:

$array = array();
preg_match( '/src="([^"]*)"/i', $data, $array ) ;

// The following lines will remove values from the first two indexes.
unset($array[0]);
unset($array[1]);
// This line will re-set the indexes (the above just nullifies the values...) and make a     new array without the original first two slots.
$array = array_values($array);
// The following line will show the new content of the array
var_dump($array);

希望这有帮助!

答案 2 :(得分:4)

如果可能,请使用array_slice($array, 2, count($array))或让正则表达式跳过前两个。

你也可以在数组上调用array_shift()两次。这可能更合理,因为它不需要复制数组。

答案 3 :(得分:0)

您可以使用 array_splice 从数组中删除元素。

<块引用>

array_splice — 移除数组的一部分并用其他东西替换它

元素从原始数组中移除并返回

$input = array("red", "green", "blue", "yellow", "black");
$part = array_splice($input, 1, 2);
var_dump($input);
var_dump($part);

See PHP fiddle