Php 向嵌套数组中的数组添加值
我试图使用下面的代码向数组中添加值,但似乎只会向数组中添加1项(循环中的最后一项)Php 向嵌套数组中的数组添加值,php,arrays,multidimensional-array,foreach,Php,Arrays,Multidimensional Array,Foreach,我试图使用下面的代码向数组中添加值,但似乎只会向数组中添加1项(循环中的最后一项) $awin_products = array(); foreach($awinprices as $value){ foreach($value as $obj){ $awin_products[name] = (string)$obj->sName; $awin_products[imageUrl] = (string)$obj->sAwThumbUrl;
$awin_products = array();
foreach($awinprices as $value){
foreach($value as $obj){
$awin_products[name] = (string)$obj->sName;
$awin_products[imageUrl] = (string)$obj->sAwThumbUrl;
}
}
print_r($awin_products);
这可能很容易修复,但到目前为止我还没有找到答案
编辑:我正在查找此输出:
Array
(
[0] => Array
(
[name] => Item 1 Name
[imageUrl] => http://example.com/item1.jpg
)
[1] => Array
(
[name] => Item 2 Name
[imageUrl] => http://example.com/item2.jpg
)
[2] => Array
(
[name] => Item 3 Name
[imageUrl] => http://example.com/item3.jpg
)
[3] => Array
(
[name] => Item 4 Name
[imageUrl] => http://example.com/item4.jpg
)
)
您在每次运行时都过度写入了相同的值:
foreach($value as $obj){
$awin_products[name] = (string)$obj->sName;
$awin_products[imageUrl] = (string)$obj->sAwThumbUrl;
}
你需要改变你写信的目的地;也许是这样的:
$i = 0;
foreach($awinprices as $value){
$awin_products[$i] = array();
foreach($value as $obj){
$awin_products[$i][]['name'] = (string)$obj->sName;
$awin_products[$i][]['imageUrl'] = (string)$obj->sAwThumbUrl;
}
$i++;
}
Array
(
[0] => Array
(
[name] => name
[imageUrl] => url
)
[1] => Array
(
[name] => name1
[imageUrl] => url1
)
)
您在每次运行时都过度写入了相同的值:
foreach($value as $obj){
$awin_products[name] = (string)$obj->sName;
$awin_products[imageUrl] = (string)$obj->sAwThumbUrl;
}
你需要改变你写信的目的地;也许是这样的:
$i = 0;
foreach($awinprices as $value){
$awin_products[$i] = array();
foreach($value as $obj){
$awin_products[$i][]['name'] = (string)$obj->sName;
$awin_products[$i][]['imageUrl'] = (string)$obj->sAwThumbUrl;
}
$i++;
}
Array
(
[0] => Array
(
[name] => name
[imageUrl] => url
)
[1] => Array
(
[name] => name1
[imageUrl] => url1
)
)
你需要跟随
$awin_products = array();
$i = 0;
foreach($awinprices as $value){
foreach($value as $obj){
$awin_products[$i]['name'] = (string)$obj->sName;
$awin_products[$i]['imageUrl'] = (string)$obj->sAwThumbUrl;
$i++;
}
}
然后你会得到这样的结构:
$i = 0;
foreach($awinprices as $value){
$awin_products[$i] = array();
foreach($value as $obj){
$awin_products[$i][]['name'] = (string)$obj->sName;
$awin_products[$i][]['imageUrl'] = (string)$obj->sAwThumbUrl;
}
$i++;
}
Array
(
[0] => Array
(
[name] => name
[imageUrl] => url
)
[1] => Array
(
[name] => name1
[imageUrl] => url1
)
)
你需要跟随
$awin_products = array();
$i = 0;
foreach($awinprices as $value){
foreach($value as $obj){
$awin_products[$i]['name'] = (string)$obj->sName;
$awin_products[$i]['imageUrl'] = (string)$obj->sAwThumbUrl;
$i++;
}
}
然后你会得到这样的结构:
$i = 0;
foreach($awinprices as $value){
$awin_products[$i] = array();
foreach($value as $obj){
$awin_products[$i][]['name'] = (string)$obj->sName;
$awin_products[$i][]['imageUrl'] = (string)$obj->sAwThumbUrl;
}
$i++;
}
Array
(
[0] => Array
(
[name] => name
[imageUrl] => url
)
[1] => Array
(
[name] => name1
[imageUrl] => url1
)
)
或者更好的是,
$awin_products[$i]['name']
你说得对——这更优雅。你能编辑我的答案来添加它吗?nerdklers写下了我的想法,这个解决方案数组将被每个$awinprices
@AlexanderLarikov覆盖-我认为编辑应该可以解决这个问题。谢谢你的提醒!或者更好的是,$awin_products[$i]['name']
你说得对——这更优雅。你能编辑我的答案来添加它吗?nerdklers写下了我的想法,这个解决方案数组将被每个$awinprices
@AlexanderLarikov覆盖-我认为编辑应该可以解决这个问题。谢谢你的提醒@sr83很难得到你想要的,因为你没有发布你想要的结构。见编辑answer@sr83很难得到你想要的,因为你没有发布你想要的结构。见编辑后的答案