PHP:创建函数并从foreach中调用它

时间:2012-03-01 19:48:38

标签: php function foreach

我有这个

<?php 

foreach ($results as $row):

    if ($row['title'] == "") $row['title'] = date('d-m-Y', strtotime($row['date']));
    if (strlen($row['text']) > 100) $row['text'] = substr($row['text'], 0, 100) . "...";

?>
        <div>
            <a href="<?php echo $row['url'] ?>">
            <img src="<?php echo $row['image'] ?>" alt="<?php echo $row['title'] ?>" />
            <h1><?php echo $row['title'] ?></h1>
            <p><?php echo $row['text']; ?></p>
            </a>
        </div>
<?php endforeach ?>

在foreach开始之后,我做了一些“房屋清洁”,如果没有标题,我将替换日期,并将文本缩小为100个字符等。

反复重复这个并不是很有效,所以创建一个函数会更好吗?

我的问题是我该怎么做?

感谢您的帮助

1 个答案:

答案 0 :(得分:4)

尝试重写这样的代码。只需将更多所需功能添加到processRowData()函数中即可。

<?php

function processRowData($row) {
    if ($row['title'] == "") {
        $row['title'] = date('d-m-Y', strtotime($row['date']));
    }
    // Do more with other elements from $row ...
    // when done, return the modified $row array
    return $row;
}

?>

<?php

foreach ($results as $row) {
    // Alter the row data with your function
    $row = processRowData($row);
?>

<div>
    <a href="<?php echo $row['url'] ?>">
    <img src="<?php echo $row['image'] ?>" alt="<?php echo $row['title'] ?>" />
    <h1><?php echo $row['title'] ?></h1>
    <p><?php echo $row['text']; ?></p>
    </a>
</div>


<?php } ?>