如何获取数组中下一个相同键的值

时间:2014-06-14 07:13:59

标签: php arrays

打印时我有一个如下所示的数组:

Array (
    [0] => stdClass Object (
        [sku] => exp_pokemonketchup_001
        [_id] =>   539be6740478ca09233ac71e
        [__v] => 0
        [type] => 3
        [status] => 1
        [_create_date] => 2014-06-14T06:06:44.365Z
        )
    [1] => stdClass Object (
        [sku] => exp_onepiecegobble_001
        [_id] => 539be6710478ca09233ac71c
        [__v] => 0
        [type] => 3
        [status] => 1
        [_create_date] => 2014-06-14T06:06:41.110Z
    )
    [2] => stdClass Object (
        [sku] => exp_sailormoongiggle_001
        [_id] => 539be66d0478ca09233ac717
        [__v] => 0
        [type] => 3
        [status] => 1
        [_create_date] => 2014-06-14T06:06:37.633Z
    )
)

我试图在sku循环期间获取后续sku的{​​{1}}和相应值。换句话说,我循环遍历数组,回显第一个sku,即foreach

现在我还需要回显下一个exp_pokemonketchup_001 sku,但是在循环继续到数组的那一部分之前。

2 个答案:

答案 0 :(得分:1)

上面的内容可以使用内置的PHP函数get_object_vars()进行排序; 在给定的数组中,我尝试使用一个字段重新创建数组。 请参阅以下代码。 <?php $obj = array((object) array('sku' => 'exp_pokemonketchup_001'), (object) array('sku' => 'exp_onepiecegobble_001') ); foreach($obj as $k => $v){ $objDetails =get_object_vars($v); print_r($objDetails['sku']); } ?>

答案 1 :(得分:0)

试试这个:

假设$array是您当前的对象数组

$array_size = count($array); 

foreach ($array as $key=>$val) {

    // echo current sku
    echo $val->sku;     

    // If not the last object, echo next sku       
    if ($key < $array_size-1) {
        echo $array[$key+1]->sku; 
    }

}