从php中的Array键中提取部分并将它们组合起来

时间:2012-11-18 12:52:23

标签: php arrays

我也有类似的问题。我有一个数组,我需要从数组的键中提取部分并将它们组合起来。能告诉你最好的方法吗?

$myarray=Array(
[0]=>'unwanted text'

[1]=>'unwanted+needed part1'

[2]=>'needed part2'

[3]=>'needed part3'

[4]=>'unwanted text'

)

我怎样才能只提取所需的部分并将它们组合起来。非常感谢。

2 个答案:

答案 0 :(得分:0)

您所使用的功能取决于您的目标,将结合以下功能:array_splicearray_fliparray_combine

<强> array_splice() 允许您通过键偏移提取数组的一部分。它将从源中永久删除元素,并以新数组

返回这些元素

<强> array_flip() 将键和值转换为键。如果您有多个相同的值,则最后一个值具有优先权。

array_combine()有两个参数:一个键数组和一个值数组,并返回一个关联数组。

但是,您需要提供更多关于您想要做什么的信息,因为我的答案更具体。

答案 1 :(得分:0)

不完全确定这是否符合您的要求,但循环和复制到新数组应基本达到您的结果(一旦您明确了如何确定需要或不需要哪部分字符串)

$myarray = array(…);
$new_array = array();
$unwanted = 'some_string';
foreach($myarray as $k => $v) {
  $new_value = preg_replace("/^$unwanted/", '', $v); # replace unwanted parts with empty string (removes them);
  if(!empty($new_value)) { # did we just remove the entry completely? if so, don't append it to the new array
    $new_array[] = $v; # or $new_array[$k] if you want to keep indices.
  }
}

假设您要加入数组条目并使用字符串作为结果,请使用PHP的implode函数:$string = implode(' ', $new_array);