如何在多数组中检索第一个和最后一个元素之间的元素


how to retrieve element between the first and the last elments in multi array

我有两个数组...多阵列**第一个叫位置和进入它(城市名称) 我想获取元素名称,但不想获取第一个或最后一个如何做到这一点

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;
        ?>
您可以使用

array_slice()

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

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

此外,您可以使用 array_shift() 删除第一个元素,使用 array_pop() 删除最后一个元素。这样,您将保留一个没有这些元素的数组,并重置索引

使用

array_slice 删除数组的第一个和最后一个元素,然后使用 foreach 循环打印所需的内容。

$newloc = array_slice($obj->location, 1, -1);
foreach($newloc as $loc)
{
    echo $loc->name;
}

请参阅 PHP:删除数组的第一个和最后一项

旁注 :如果你在一个非常大的数组上这样做,最好使用 array_shift 和 array_pop。

一种快速简便的方法如下:

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

尽管这假设您的数组是按照将第一个和最后一个项目真正放在第一个和最后一个的顺序构建的。 如果没有,您可能需要提前对数组进行排序。 在 PHP 中,决定数组中第一个和最后一个元素的是它的分配顺序,不一定是键。