Php 如何循环遍历数组并为每个数组调用函数?
我有一个数组需要循环,对于特定的键,我需要调用chopActNum函数。该函数获取一个帐号,并将其转换为“XXXXXXXXX 1234”格式。然后我想显示这个新格式,而不是整个帐号。MyPhp 如何循环遍历数组并为每个数组调用函数?,php,arrays,Php,Arrays,我有一个数组需要循环,对于特定的键,我需要调用chopActNum函数。该函数获取一个帐号,并将其转换为“XXXXXXXXX 1234”格式。然后我想显示这个新格式,而不是整个帐号。My$accountList保存帐户的所有信息。我的困惑在于,我目前通过Smarty模板中的分配显示我的所有帐户信息。我很难解释,所以看到我的代码可能有助于阐明我的问题。 我的职能: public function chopActNum($actNum=0){ $numPlace=strlen($actNu
$accountList
保存帐户的所有信息。我的困惑在于,我目前通过Smarty模板中的分配显示我的所有帐户信息。我很难解释,所以看到我的代码可能有助于阐明我的问题。我的职能:
public function chopActNum($actNum=0){
$numPlace=strlen($actNum)-4;
$repeatX=str_repeat('x',$numPlace);
$actNumConcat=$repeatX.substr($actNum, -4);
return $actNumConcat;
Php:
第三方物流代码:
{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}
{foreach from=$accountList item=v name=foo}
{$v.actName}
{$v.actNum}
{$v.bankRoute}
{/foreach}
使用数组映射为模板准备数据,如下所示:
$achList = arrar_map(function($v){
return array(
'actName' => $v['actName'],
'actNum' => chopActNum($v['actNum']),
'bankRoute' => $v['bankRoute']
);
}, $achList);
您可以在
foreach
中获取密钥,然后检查它是否是特定密钥之一
$specific_keys = array(...);
foreach ($achList as $key => $acct) {
if (in_array($key, $specific_keys)) {
$actNum[] = chopActNum($acct['actNum']);
} else {
$actNum[] = $acct['actNum'];
}
}
你怎么知道它是不是应该调用
chopActNum
的特定键之一?我不明白。在php代码中,您得到了$chopNum,但您从未用它做过任何事情。难道你不想在你的循环中做这样的事情:$a['chopNum']=$chopNum
或$a['actNum']=$chopNum
?如果您这样做了,请记住将&reference标记放在$a上,即:foreach($achList as&$a)
或者您更改了循环中$a的内容,但在循环完成后更改不会返回。我在周末找到了一个解决方案,但感谢大家的帮助!对于($x=0;$x$specific_keys = array(...);
foreach ($achList as $key => $acct) {
if (in_array($key, $specific_keys)) {
$actNum[] = chopActNum($acct['actNum']);
} else {
$actNum[] = $acct['actNum'];
}
}