【问题标题】:How to add a function to every key in array如何将函数添加到数组中的每个键
【发布时间】:2015-01-30 11:51:08
【问题描述】:

我正在使用代码点火器,并且我有一个存储从表单发送的数据的数组。 有时用户可以输入带有空格的文本,例如“John”或“James”,所以我想使用 trim() 函数来删除这些空格。

$data = array(
    'name'          => ' James',
    'surname'       => 'Doe  ',
    'street_name'   => ' The Steet',
    'number'        => '45 flat 5/6 ',
    'postcode'      => ' 12-345 ',
    'city'          => ' New York ',
    );

我不想为数组中的每一行添加修剪,我更愿意添加一个函数,该函数将逐个键并使用修剪函数到数组中的每个键。该怎么做?

【问题讨论】:

标签: php arrays codeigniter


【解决方案1】:

array_map 函数将函数应用于数组中的每个元素。在这种情况下,你想要的函数是trim

$trimmedData = array_map('trim', $data);

【讨论】:

  • 谢谢 - 这就是我要找的。​​span>
【解决方案2】:

了解流程的最简单的普通代码

foreach($data as $key=>$val) {
  $data[$key] = trim($val);
}
var_dump($data);

或使用函数,例如数组映射()

【讨论】:

    【解决方案3】:
    $newarray = array_map("trim", $old_array);
    

    【讨论】:

      【解决方案4】:

      一个函数?

      function trim_whitespace_from_array( $input ){
          foreach($input as $key=>$val) {
            $input[$key] = trim($val);
          }
          return $input;
      }
      
      $data = array(
      'name'          => ' James',
      'surname'       => 'Doe  ',
      'street_name'   => ' The Steet',
      'number'        => '45 flat 5/6 ',
      'postcode'      => ' 12-345 ',
      'city'          => ' New York ',
      );
      
      $trimmed = trim_whitespace_from_array($data);
      

      和@donald123 说的差不多。

      【讨论】:

      • 谢谢 - 这工作正常,但在我的情况下 trim() 函数可以完成这项工作。
      • 是的,标记为正确的答案肯定是这里的最佳答案。
      【解决方案5】:

      您想要的功能已经存在。它被称为array_map()。它允许对数组中的所有值调用自定义函数(在您的情况下为trim()),并根据该函数返回的值生成一个数组;它保留了密钥。

      $data = array_map('trim', $data);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-09-13
        • 2017-09-30
        • 2016-11-13
        • 2021-04-12
        • 1970-01-01
        • 2016-07-22
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多