如何为每个循环数组和调用函数?

时间:2016-12-30 21:44:32

标签: php arrays

我有一个需要循环的数组,对于特定的键,我需要调用chopActNum函数。该功能采用一个帐号,并将其转换为" xxxxxxxxxx1234"格式。我想显示这种新格式而不是整个帐号。我的$accountList包含帐户的所有信息。我的困惑在于,我目前通过Smarty模板中的作业显示我的所有帐户信息。我很难解释,所以也许看到我的代码将有助于阐明我的问题 我的功能:

public function chopActNum($actNum=0){

    $numPlace=strlen($actNum)-4;
    $repeatX=str_repeat('x',$numPlace);
    $actNumConcat=$repeatX.substr($actNum, -4); 
    return $actNumConcat;

腓:

foreach($achList as $a)
{
$actNum[] = $a['actNum'];
$chopNum=$Ach->chopActNum($actNum);
}

$achList=$Ach->listAch($logged_userid);
$smarty->assign("accountList",$achList);

Tpl代码:

{foreach from=$accountList item=v name=foo} 
<td class="tableData">{$v.actName}</td>
<td class="tableData">{$v.actNum}</td>
<td class="tableData">{$v.bankRoute}</td>
{/foreach}

2 个答案:

答案 0 :(得分:0)

使用array_map为模板准备数据,如下所示:

$achList = arrar_map(function($v){
  return array(
    'actName' => $v['actName'],
    'actNum' => chopActNum($v['actNum']),
    'bankRoute' => $v['bankRoute']
  );
}, $achList);

答案 1 :(得分:0)

您可以在foreach中获取密钥,然后检查它是否是特定密钥之一。

$specific_keys = array(...);
foreach ($achList as $key => $acct) {
    if (in_array($key, $specific_keys)) {
        $actNum[] = chopActNum($acct['actNum']);
    } else {
        $actNum[] = $acct['actNum'];
    }
}