微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何格式化一个简单的PHP字符串数组?

我有这个简单的函数,我传入一个字符串数组:

function myfunction( $arg = array() )
{
    // do stuff to $arg...
    // return a $string;
}

到目前为止很简单,但我需要格式化$arg数组中的一些字符串,而有些字符串仍未格式化.我弄不清楚该怎么办?

假设我通过myfunction()运行这个$arg:

echo myfunction( array( 'format me!', 'do not format me!' ) );

我的小脑子无法弄清楚如何告诉myfunction()$arg数组中的第一个值需要格式化,并且它不应该格式化第二个值.

我想过一个关联数组,但我认为这可能是错误方法,因为它具有相同的索引.

echo myfunction( array( 'format' => 'hi', 'format' => 'bye', 'noformat' => 'foo');

只是朝着正确的方向寻找“轻推”.

编辑1:

忘了提一下,我只能有一个$arg数组,因为我需要按特定顺序键.

编辑2:

$arg数组可以拥有用户想要的密钥.

解决方法:

你可以做:

function myfunction(array $format, array $noformat) {
  ... 
}

要么

function myfunction(array $strings) {
  foreach ($strings['format'] as $format) {
    // do stuff
  }
  foreach ($strings['noformat'] as $noformat) {
    // do stuff
  }
}

有:

myfunction(array(
  'format' => array('one', 'two', 'three'),
  'noformat' => array('four', 'five', 'six'),
));

如果(且仅当)字符串是唯一的,您可以将它们放在键中而不是值中:

$strings = array(
  'one' => true,
  'two' => false,
  'three' => false,
  'four' => true,
);

myfunction($strings);

有:

function myfunction(array $strings) {
  foreach ($strings as $k => $v) {
    if ($v) {
      // format string
    }
  }
}

但是,由于你没有重复键,如果你有重复的字符串,这种方法就会失败.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐