如何在多维数组php中推送键值对

如何在多维数组php中推送键值对,php,php-5.3,Php,Php 5.3,使用以下foreach循环 $category_ids = array_of_ids; foreach($category_ids as $category_id) { $queryAllProducts['products'][] = $this->api->queryAllProducts(array('params' => array('categoryCode' => $category_id, 'usertoken' => USER_TOKEN)

使用以下foreach循环

$category_ids = array_of_ids;

foreach($category_ids as $category_id) {
    $queryAllProducts['products'][] = $this->api->queryAllProducts(array('params' => array('categoryCode' => $category_id, 'usertoken' => USER_TOKEN))));
    }
作为上述循环的结果,我得到以下指令。 现在,如何在
productName
之后添加
category\u id

Array
(
    [0] => stdClass Object
        (
            [result] => stdClass Object
                (
                    [products] => stdClass Object
                        (
                            [Product] => Array
                                (
                                    [0] => stdClass Object
                                        (
                                            [price] => 0.72
                                            [productName] => product_name_appears_here
                                        )

                                    [1] => stdClass Object
                                        (
                                            [price] => 0.72
                                            [productName] => product_name_appears_here
                                        )

                                    [2] => stdClass Object
                                        (
                                            [price] => 0.72
                                            [productName] => product_name_appears_here
                                        )
                                )
                        )
                )
        )

    [1] => stdClass Object
        (
            [result] => stdClass Object
                (
                    [products] => stdClass Object
                        (
                            [Product] => Array
                                (
                                    [0] => stdClass Object
                                        (
                                            [price] => 3.19
                                            [productName] => product_name_appears_here
                                        )

                                    [1] => stdClass Object
                                        (
                                            [price] => 1.12
                                            [productName] => product_name_appears_here
                                        )

                                    [2] => stdClass Object
                                        (
                                            [price] => 1.66
                                            [productName] => product_name_appears_here
                                        )

                                    [3] => stdClass Object
                                        (
                                            [price] => 1.66
                                            [productName] => product_name_appears_here
                                        )
                                )
                        )
                )
        )
我如何处理这种情况

我的预期产出

对于示例,我将仅显示2个数组

[0] => stdClass Object
          (
                  [price] => 0.72
                  [productName] => product_name_appears_here
                  [category_id] => something_which_is_from_$category_id
          )

[1] => stdClass Object
          (
                  [price] => 0.72
                  [productName] => product_name_appears_here
                  [category_id] => something_which_is_from_$category_id
          )
像这样试试

$category_ids = array_of_ids;

foreach($category_ids as $category_id) {
   $rowResult = $this->api->queryAllProducts(array('params' => array('categoryCode' => $category_id, 'usertoken' => USER_TOKEN))));
   foreach($rowResult->result->products->Product as $values) {
     $values->category_id = {HERE CODE TO GET category_id}
   }
  $queryAllProducts['products'][] = $rowResult;
 }
试试这个:

foreach($category_ids as $category_id) {
    $queryAllProducts['products'][] = $this->api->queryAllProducts(array('params' => array('categoryCode' => $category_id, 'usertoken' => USER_TOKEN))));
    $a = array_pop($queryAllProducts);
    $b = array_pop($a);
    $c = array_pop($b);
    $d = array_merge($c, array( 'category_id' => $category_id ));
    array_push($queryAllProducts,$d);
}
或者可能:

foreach($category_ids as $category_id) {
  $result = $this->api->queryAllProducts(array('params' => array('categoryCode' => $category_id, 'usertoken' => USER_TOKEN))));
    $a = array_pop($result);
    $b = array_merge($a, array( 'category_id' => $category_id ));
    $queryAllProducts['products'][] = $b;
}

$this->api->queryalProducts返回级联对象数组,所以您应该尝试从结果中获取产品数组,然后根据需要构建自己的数组

这里我已经更新了你的代码,试试这个

foreach($category_ids as $category_id) {
$rsobj = $this->api->queryAllProducts(array('params' => array('categoryCode' => $category_id, 'usertoken' => USER_TOKEN))));
$Products = $rsobj->result->products->Product;
foreach($Products as $product) {
    $queryAllProducts['products'][] = (object)array_merge($product, array('category_id' => something_which_is_from_$category_id));
}

}

如果您给出了所获得结构的示例,是否也可以提供所需结构的相应示例?请查看您的输出:您不是在处理数组,而是处理
stdClass
的实例,对象需要不同的方法。如果不能使用它们,可以将它们转换为数组(
$asArray=(array)$object
),或者,如果对象也有对象属性:
$asArray=json\u decode(json\u encode($recursiveObject),true)您提供的代码将添加到结果旁边,但不是在productName之后。任何其他的变化都需要修改done@Seting所以你的$this->api->queryalProducts结果从“产品”开始?它从result@Seting试试那里的变化