Php Can';t向现有数组添加自定义键

Php Can';t向现有数组添加自定义键,php,arrays,Php,Arrays,我有一个名为“$apptAddons”的现有数组,我希望有一个自定义的键值对。我目前的代码如下: foreach($decodeaddons as $addons){ if(in_array($addons->id, $AddonArray)){ $apptAddons[$addons->id] = $addons->name; } } 当我这样做并打印出数

我有一个名为“$apptAddons”的现有数组,我希望有一个自定义的键值对。我目前的代码如下:

foreach($decodeaddons as $addons){
            if(in_array($addons->id, $AddonArray)){

                $apptAddons[$addons->id] = $addons->name;
            }           
        }
当我这样做并打印出数组时,它看起来如下所示:

Array ( [0] => Marketing Addon [1] => Same Day Delivery )
作为参考,它应该是以下内容:

Array ( [64251] => Marketing Addon [3370] => Same Day Delivery )
$addons->id
本身就可以打印出正确的数字,它不会影响数组中每个值的键。我不确定我做错了什么,因为这就是我向现有数组添加自定义键的方式

更新:我应该在前面提到,我正在解析这个特定代码中API调用的JSON响应,如果这改变了什么的话

第二次更新:根据x01saa的要求,这里是来自if部分的var_转储:

    object(stdClass)#22 (5) { ["id"]=> int(64251) ["name"]=> string(14) 
"Marketing Addon" ["duration"]=> int(0) ["price"]=> string(5) "50.00" 
["private"]=> bool(false) } object(stdClass)#24 (5) { ["id"]=> int(3370) 
["name"]=> string(17) "Same Day Delivery" ["duration"]=> int(0) ["price"]=> 
string(5) "25.00" ["private"]=> bool(false) }

你试过这样做吗

 foreach($decodeaddons as $addons){
                if(in_array($addons['id'], $AddonArray)){

                    $apptAddons[$addons['id']] = $addons['name'];
                }           
            }

你试过这样做吗

 foreach($decodeaddons as $addons){
                if(in_array($addons['id'], $AddonArray)){

                    $apptAddons[$addons['id']] = $addons['name'];
                }           
            }

$apptAddons['customKey']='customValue'尝试在if块中
var\u dump($addons)
并更新您的问题。这非常有用。
$apptAddons['customKey']='customValue'尝试在if块中
var\u dump($addons)
并更新您的问题。这是非常有用的。我试过了,它出现了一个错误“PHP致命错误:不能使用stdClass类型的对象作为数组”我试过了,它出现了一个错误“PHP致命错误:不能使用stdClass类型的对象作为数组”