如何向数组中的每个键添加一个函数

时间:2015-01-30 11:51:08

标签: php arrays codeigniter

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

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

我没有为数组中的每一行添加修剪,而是希望添加一个按键键入的函数,并对数组中的每个键使用trim函数。怎么做?

5 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

了解流程的最简单的香草代码

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

或使用例如array_map()

答案 2 :(得分:1)

$newarray = array_map("trim", $old_array);

答案 3 :(得分:1)

一个功能?

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所说的几乎相同。

答案 4 :(得分:1)

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

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