Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/231.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 向嵌套数组中的数组添加值_Php_Arrays_Multidimensional Array_Foreach - Fatal编程技术网

Php 向嵌套数组中的数组添加值

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;

我试图使用下面的代码向数组中添加值,但似乎只会向数组中添加1项(循环中的最后一项)

$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很难得到你想要的,因为你没有发布你想要的结构。见编辑后的答案