1

我一直在寻找一段时间,但我找不到让它工作的方法。如何替换 stdClass 对象数组中的值?例如,如果我有这个:


Array ( 
    [0] => stdClass Object (
            [id] => 1 
            [fruit] => 100
            [vegetable] => 200
        ) 
    [1] => stdClass Object (
            [id] => 2
            [fruit] => 100
            [vegetable] => 100
        )
    [2] => stdClass Object (
            [id] => 3
            [fruit] => 200
            [vegetable] => 200
        ) 
)

我如何更改值 - 水果 100 到苹果,水果 200 到桃子,蔬菜 100 到西兰花和蔬菜 200 到生菜 - 我需要这样结束:


Array ( 
    [0] => stdClass Object (
            [id] => 1 
            [fruit] => apple
            [vegetable] => lettuce
        ) 
    [1] => stdClass Object (
            [id] => 2
            [fruit] => apple
            [vegetable] => broccoli
        )
    [2] => stdClass Object (
            [id] => 3
            [fruit] => peach
            [vegetable] => lettuce
        ) 
)

提前感谢您的帮助!

4

3 回答 3

0

一个 stdClass 对象不是一个数组,它是一个对象,所以你需要使用对象表示法:

$array[0]->id = 'foo';

在这里阅读对象

于 2013-04-27T20:54:08.723 回答
0

让 $array 成为你的数组,然后:

$array[0]->fruit = 'apple';
$array[0]->vegetable = 'lettuce';

$array[1]->fruit = 'apple';
$array[1]->vegetable = 'broccoli';

$array[2]->fruit = 'peach';
$array[2]->vegetable = 'lettuce';
于 2013-04-27T21:01:12.480 回答
0

你可以试试

$fruit = array(
        100 => "apple",
        200 => "peach"
);
$vegetable = array(
        100 => "broccoli",
        200 => "lettuce"
);

$final = array_map(function ($v) use($fruit, $vegetable) {
    $v->fruit = $fruit[$v->fruit];
    $v->vegetable = $fruit[$v->vegetable];
    return $v;
}, $arrayObject);

观看现场演示

于 2013-04-27T21:02:28.137 回答