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;
        ?>
4

3 回答 3

0

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

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

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

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

于 2013-09-05T15:32:51.087 回答
0

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

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

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

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

旁注:如果您在非常大的数组上执行此操作,最好使用 array_shift 和 array_pop。

于 2013-09-05T15:38:11.757 回答
0

您可以使用array_slice()

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

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

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

于 2013-09-05T15:38:59.373 回答