Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/273.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/magento中动态创建数组_Php_Magento_Magento 1.7 - Fatal编程技术网

如何在php/magento中动态创建数组

如何在php/magento中动态创建数组,php,magento,magento-1.7,Php,Magento,Magento 1.7,我尝试了以下代码 <?php foreach ($_wishlistitemCollection as $_wishlistitem): $_product = $_wishlistitem->getProduct(); $imgpath = $this->helper('catalog/image')->init($_product, 'small_image'); $physpaths = array($imgpath); endfor

我尝试了以下代码

<?php

foreach ($_wishlistitemCollection as $_wishlistitem):
    $_product  = $_wishlistitem->getProduct();
    $imgpath   = $this->helper('catalog/image')->init($_product, 'small_image');
    $physpaths = array($imgpath);
endforeach;
?>
<?php

for ($i = 0; $i < 5; $i++) {
    echo $physpaths[$i];
}
?> 
没有错误,但问题是它没有显示数组$physpaths中的所有元素


请帮助我如何确保$physpaths包含所有元素,或者简单地指出我犯了错误的地方。

为了在新索引处向数组追加值,您应该使用array_push或[]:

; PROTIP:您应该在foreach之前将$physpaths初始化为数组


要在新索引处向数组追加值,应使用array_push或[]:

; PROTIP:您应该在foreach之前将$physpaths初始化为数组

如此接近

如此接近


您是否使用echo验证$physpaths的内容?是的,我使用echo验证其内容请在下面勾选我的答案。var_dump更适合验证数组或对象的内容。感谢大家支持我……与其使用var_dump,不如使用Zend_Debug返回的结果!请尝试在填充$physpaths后输出它:Zend_Debug::dump$physpaths;-您将看到,对于更大的对象,Zend_Debug格式化信息的方式更易于阅读,从而使调试更令人愉快…您是否使用echo验证$physpaths的内容?是的,我使用echo验证其内容请在下面勾选我的答案。var_dump更适合验证数组或对象的内容。感谢大家支持我……与其使用var_dump,不如使用Zend_Debug返回的结果!请尝试在填充$physpaths后输出它:Zend_Debug::dump$physpaths;-您将看到,对于更大的对象,Zend_Debug格式化信息的方式更易于阅读,从而使调试更令人愉快…更改$physpaths[]=array$imgpath;至$physpaths[]=$imgpath;他想稍后再回应。是的,我刚注意到并改变了它。太好了;我可以建议您提前说明初始化阵列的原因吗?由于php版本。原因是它的代码很好。永远不要将数据附加到未初始化的变量,尤其是在foreach中使用数据的数组中。如果它未初始化,并且创建循环从未进入,那么它将被视为null,并将抛出一个错误。始终将变量初始化为默认值。更改$physpaths[]=数组$imgpath;至$physpaths[]=$imgpath;他想稍后再回应。是的,我刚注意到并改变了它。太好了;我可以建议您提前说明初始化阵列的原因吗?由于php版本。原因是它的代码很好。永远不要将数据附加到未初始化的变量,尤其是在foreach中使用数据的数组中。如果它未初始化,并且创建循环从未进入,那么它将被视为null,并将抛出一个错误。始终将变量初始化为默认值。感谢您的回复。我已经尝试了以上的解决方案,但它重复相同的路径多次。感谢您的回复。我已经尝试了上述解决方案,但它重复了相同的路径多次。
<?php
foreach(...) :
    .
    .
    .
    // use this
    $physpaths[] = $imgpath;
    // or this
    array_push($physpaths, $imgpath);
    // NOT BOTH
endforeach;
echo "<pre>";
var_dump($physpaths);
echo "</pre>";
$physpaths = array();

foreach(...):
    .
    .
    .
endforeach;
<?php
$physpaths = array();
foreach ($_wishlistitemCollection as $_wishlistitem):
    $_product  = $_wishlistitem->getProduct();
    $imgpath   = $this->helper('catalog/image')->init($_product, 'small_image');
    $physpaths[] = $imgpath;
endforeach;
?>
<?php

for ($i = 0; $i < 5; $i++) {
    echo $physpaths[$i];
}
?>