如何在多维数组php中推送键值对
使用以下foreach循环如何在多维数组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)
$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试试那里的变化