搜索数组中的项目并从中创建新变量

时间:2014-03-12 14:05:40

标签: php arrays foreach

假设我有一个这样的数组array('first item', 'seconditem', 'third item') 现在我想搜索变量中的所有项目(使用foreach,因为我假设我不知道数组中有多少项) 我如何删除所有空格并将它们添加到一个新的数组中,具有几乎相同的结构,但它们将显示为:

array('firstitem','seconditem','thirditem')

而不是:

array('first item', 'seconditem', 'third item')
顺便说一句,在PHP中

2 个答案:

答案 0 :(得分:0)

试试这个:

function removeSpaces($input) {
    foreach (array_keys($input) as $i) {
        if (is_string($input[$i])) {
            $input[$i] = preg_replace('/\s+/', '', $input[$i]);
        } elseif (is_array($input[$i])) {
            $input[$i] = removeSpaces($input[$i]);
        }
    }
    return $input;
}

<强>用法:

$array = array('key1' => 'test item', array('first item', 117 => 'seconditem', 'third item'));

$array = removeSpaces($array);

print_r($array);

<强>输出:

Array
(
    [key1] => testitem
    [0] => Array
        (
            [0] => firstitem
            [117] => seconditem
            [118] => thirditem
        )

)

此功能可通过自定义键进行递归和保护! :)

答案 1 :(得分:0)

怎么样

$arr = array('firstitem', 'second item', 'third item');
array_walk($arr, function(&$value, $key) { $value = str_replace(' ', '', $value); });
print_r($arr);

给出

Array
(
    [0] => firstitem
    [1] => seconditem
    [2] => thirditem
)

如果您不想更改原始数组,请先复制它($arr2 = $arr);