2012-07-26 58 views
1
数组的第3个值

假设我有看起来像这样的获取在PHP

array ([apple] => 1, [dog]=>2, [cat]=>5, [bread]=>9, [shoes]=> 4) 

阵列是否有可能为我打印数组的第3个值?如果是这样,怎么样?有任何想法吗?

回答

4
$firstThreeElements = array_slice($array, 0, 3); 

其中0是您的偏移量,3是您想要的元素数量。

+2

那真的没有回答这个问题.. – Ben 2012-07-26 02:38:34

+1

@Ben,为什么不呢?他的难处在于让阵列的前三个元素不在印刷中? – Mekswoll 2012-07-26 02:40:26

6

有很多方法。

list($first, $second, $third) = $array; 
echo $first . ' ' . $second . ' ' . $third; 

或者:

echo array_shift($array); 
echo array_shift($array); 
echo array_shift($array); 

或者:

$i = 0; 
foreach($array as $el) { 
    if($i >= 3) break; 
    echo $el; 
    $i++; 
} 

或者:

foreach(array_slice($array, 0, 3) as $el) { 
    echo $el; 
} 

或者:

echo implode(' ', array_slice($array, 0, 3)); 
+0

无需人工索引计数...'的foreach($数组作为$ I => $ EL)' – Ben 2012-07-26 02:34:38

+0

@Ben - '$ i'将包含关键,这是一个关联数组。 – nickb 2012-07-26 02:35:53

+0

啊,我的不好,我完全看过它:) – Ben 2012-07-26 02:36:31

2

使用迭代器:

$array = ['apple' => 1, 'dog' => 2, 'cat' => 5, 'bread' => 9, 'shoes' => 4]; 

foreach (new LimitIterator(new ArrayIterator($array), 0, 3) as $key => $val) 
{ 
    echo "$key => $val\n"; 
}