创建一个使用各种数组的foreach循环函数(PHP)

时间:2014-02-09 13:42:11

标签: php arrays function

新手在这里

我正在开展一个小项目,我使用下面的代码显示在大约12页上,并且及时将在另外12个页面中使用它。对我来说,这似乎我应该把它变成一个函数,我已经看了PHP.NET并阅读了一些很酷的东西,并做了一些谷歌,但没有完全以我理解的方式回答我的问题。我理解如何创建泛型函数(即函数EchoSomething(){echo'print something';}。但我不明白如何构造一个函数来调用数组并在每个循环中运行它。

这是我的起始代码,除了每次使用不同的数组名称外,其他方面都相同:

<?php

foreach($aaGenR1 AS $key => $value){

echo '<div class="3u"><a href="_img/fulls/' . $key .'" class="image full"><img src="_img/thumbs/' . $key .'" alt="" title="' . $value .'" /></a></div>';

}

?>

在我看来,我应该能够写出像

这样的东西
function GetPortfolioArray(){

echo '<div class="3u"><a href="_img/fulls/' . $key .'" class="image full"><img src="_img/thumbs/' . $key .'" alt="" title="' . $value .'" /></a></div>';

}

然后当我在我的代码中调用该函数时,我会写'GetPortfolioArray($ arrayNameToBeUsed)'

我觉得我很亲近,我希望无论如何我都很亲近。感谢帮助。 谢谢。

干杯

3 个答案:

答案 0 :(得分:1)

您必须在函数内部创建foreach:

function GetPortfolioArray($var){
  foreach($var as $key => $value){
  echo '<div class="3u"><a href="_img/fulls/' . $key .'" class="image full"><img src="_img/thumbs/' . $key .'" alt="" title="' . $value .'" /></a></div>';
  }
}

然后你可以GetPortfolioArray($randomvar);

显然

$randomvar是数组

编辑:请考虑一下,我认为你的回声里面的任何东西都意味着是一个显然需要重复的行或一个集团。如果这不是你想要的,那么这个循环不是正确的方法。

答案 1 :(得分:1)

首先,我推荐一些基本的PHP教程或更好的一些基本的软件开发教程。这是我每个初学者教程都会回答的问题。

第二个你想要的是一个函数,它将数组作为参数,迭代它并将键和值插入到字符串模板中。回答你的问题:

function printPortfolioArray($portfolioArray)
{
    foreach($portfolioArray as $key => $value)
    {
        echo '<div class="3u"><a href="_img/fulls/' . $key .'" class="image full"><img src="_img/thumbs/' . $key .'" alt="" title="' . $value .'" /></a></div>';
    }
}

最好将模板移动到第二个参数中,并将$ key和$ value替换为sprintf() and printf()中定义的格式变量

function printArray($array, $template)
{
    foreach($array as $key => $value)
    {
        printf($template, $key, $value);
    }
}

示例:

$array = ...;
$template = '<div class="3u"><a href="_img/fulls/%1$s" class="image full"><img src="_img/thumbs/%1$s" alt="" title="%2$s" /></a></div>';
printArray($array, $template);

答案 2 :(得分:1)

首先,创建一个包含的function.php文件,或者像Util.class.php这样的文件。他们将承担您的任何进一步职能。我宁愿在名为XXXXXX.class.php的文件中使用静态函数。我的每个项目都是一样的,被称为“Util.class.php”。我所有的职能都在那里。

添加require_once('Util.class.php');在任何需要你的功能的文件中。

要回答你的问题,我会执行以下功能:

/**
* A short description of your function
* @return void
/**
public static function getPortofolioArray($array)
{
    foreach ($array as $key => $val)
    {
        echo '<div class="3u"><a href="_img/fulls/'.$key.'" class="image full"><img src="_img/thumbs/'.$key.'" alt=""  title="'. $value.'" /></a></div>';
    }
}

然后你需要这个功能,首先包括你文件顶部的Util:

require_once('Utils.class.php')

并调用您需要的功能:

Utils::getPortofolioArray($yourArray);

当然,这是问题的直接答案,我没有改善你的想法或任何事情。

小心你如何命名你的功能。基本上你称之为“getPortoFolioArray”,但是你没有在你的函数中做到这一点,你回应东西并且不返回任何数组。而是称它为“printPortofolioLinks”,因为它实际上就是它...