2013-09-05 94 views
0

我有兩個數組...多個數組 **第一個被調用的位置並進入它(城市名稱) 我想獲取元素名稱但不第一個或最後一個 如何做到這一點如何檢索多個數組中的第一個和最後一個元素之間的元素

location":Array (
[0] => stdClass Object ([code] => BKK [name] => Bangkok) 
[1] => stdClass Object ([code] => SIN [name] => Singapore Changi) 
[2] => stdClass Object ([code] => KUL [name] => Kuala Lumpur)) 

我的代碼無法正常工作

<?php 

     foreach ($obj->location as $lo): 
      if (!reset(reset($lo)) and !end(end($lo))) { 
       echo $lo->name . ','; 
      } 
     endforeach; 
     ?> 

回答

0

你可以使用array_slice()

$array = array_slice($obj->location, 1, -1, true); // to preserve the keys 

例子:http://codepad.org/Hi4yCTXE

此外,您還可以使用array_shift()刪除第一個元素,array_pop()刪除最後一個。通過這種方式,您將保留一個沒有這些元素的陣列,並使用索引重置

0

一個快速簡便的方式,可能是以下幾點:

$counter = 0; 
$last = count($obj->location - 1); 

foreach($obj->location as $lo) { 
    if($counter && $counter != $last) echo $lo->name; 
    $counter++; 
} 

雖然這假設您的數組是按照將第一個和最後一個項目放在第一個和最後一個項目的順序構建的。否則,您可能需要提前對陣列進行排序。在PHP中,決定數組中第一個和最後一個元素的順序是它被分配的順序,而不一定是關鍵。

0

用array_slice刪除數組的第一個和最後一個元素,然後使用foreach循環打印出你想要的東西。

$newloc = array_slice($obj->location, 1, -1); 

foreach($newloc as $loc) 
{ 
    echo $loc->name; 
} 

PHP: Remove the first and last item of the array

旁註:如果你這樣做是一個非常大的陣列上,這將是更好地使用array_shift和array_pop。

相關問題