2014-07-04 78 views
-1

,我有以下从多维数组(为简单起见print_r()我没有包括在阵列中的所有信息:PHP切片多维数组

的print_r()

Array (
[0] => Array (
    ... 
) 
[41] => Array (
    [name] => London 
    [company] => nhyt6t 
    [top25_1] => 8.75912088 
) 
[42] => Array (
    [name] => Manchester 
    [company] => gtr4rf 
    [top25_1] => 6.56758398 
) 
    ... 
[75] => Array (
    [name] => Leeds 
    [company] => de3wsd6 
    [top25_1] => 7.58675398 
) 
) 

我我试图实现的是切片阵列,以便从阵列[41]向上获得信息到一个新的阵列。

我知道我可以使用`array_slice()',但我的下面的代码不起作用,我相信这是因为我正在切片的数组是多维的,我无法弄清楚如何实现这一点。

非工作代码

$array = array_slice($row, 40); 

任何和所有的反馈和建议欢迎。

+0

所以你想从41和以上? – Darren

+0

是的,这是正确的达伦。 –

+2

你的非工作代码产生了什么?这似乎很好 –

回答

1

你只需要检查手册上的PHP - >array_slice()

$array = array_slice($row, 40, (count($row) - 40)) 

你完全忘记提供我们开展从41 第n项目计数的第三个参数($length)到:) :)

Example

+0

第三个参数不是必需的。从手册:“如果它被省略,那么序列将包含从偏移量到数组末尾的所有内容。” – FuzzyTree

+0

@FuzzyTree - 然而,你是正确的,因为我不知道的原因 - 这工作,而我的代码没有。 –

+0

@FuzzyTree我意识到这一点,但正如你所看到的,它不适用于OP,所以我提供了另一种选择:-) – Darren

0
<?php 
$result = array(); 
for($i=40;$i<count($row);$i++) 
{ 
    if(array_key_exists ($i,$row)) 
    { 
     $result[$i] = $row[$i]; 
    } 

} 
print_r($result); 
?>