PHP正在从数组内的字符串元素中删除括号


PHP Removing parenthesis from string element inside of array

我使用in_array()函数和trim()来检测数组中包含括号()的字符串。尽管我目前的程序正在运行并满足我的需求,但我想将其提升到一个新的水平,使其更通用。目前我正在通过"stack[2]"指定阵列位置。

$stack = array( "test-1" , "test-2" , "(test-3)" );
print_r($stack);
if ( in_array( "".$stack[2]."" , $stack , TRUE ) ) {
  $stack[2] = trim($stack[2], '()');
}
print_r($stack);

修剪过程前:

Array
(
    [0] => test-1
    [1] => test-2
    [2] => (test-3)
)

修整过程后:

Array
(
    [0] => test-1
    [1] => test-2
    [2] => test-3
)

我希望我的程序搜索数组中的每个值,删除()并将其保存在同一位置。测试阵列的样本如下所示:

$stack = array( "test-1" , "test-2" , "(test-3)" , "test-4" , "(test-5)" );

我确信有办法,但我不知道怎么做。

感谢您的时间和努力。

使用for循环和数组大小:

$stack = array( "test-1" , "test-2" , "(test-3)" , "test-4" , "(test-5)" );
print_r($stack);
for ($i = 0; $i < sizeof($stack); $i++){
   $stack[$i] = trim($stack[$i], '()');
}
print_r($stack);

最后非常简单,我使用了foreach()并将元素推送到一个新的数组中。如此简单,结果如预期。以下提供的代码和输出示例:

$stack = array( "test-1" , "test-2" , "(test-3)" , "test-4" , "(test-5)" );
print_r($stack);

循环前print_r()的输出:

Array
(
    [0] => test-1
    [1] => test-2
    [2] => (test-3)
    [3] => test-4
    [4] => (test-5)
)
$array = array();
foreach ($stack as $string) {
  $string = trim($string, '()');
  array_push($array, "".$string."");
}
print_r($array);

处理后print_r()的输出:

Array
(
    [0] => test-1
    [1] => test-2
    [2] => test-3
    [3] => test-4
    [4] => test-5
)

很抱歉有这么简单的问题/答案。

$stack = array( "test-1" , "test-2" , "(test-3)" , "test-4" , "(test-5)" );
for(i=0; i < count($stack); i++) {
  $stack[$i] = trim($stack[$i], '()');
}

我建议你去读一些PHP编程教程。这是一个非常基本的想法。