0

私も同様の質問があります。配列のキーからパーツを抽出して組み合わせる必要がある配列があります。そのための最善の方法を提案していただけますか。

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

[1]=>'unwanted+needed part1'

[2]=>'needed part2'

[3]=>'needed part3'

[4]=>'unwanted text'

)

必要なパーツだけを抽出して組み合わせるにはどうすればよいですか。どうもありがとうございました。

4

2 に答える 2

0

あなたが何をしたいかに応じて、あなたが求めている機能は、次の組み合わせになります:array_splice、、。array_fliparray_combine

array_splice() を使用すると、キーオフセットによって配列の一部を抽出できます。ソースから要素を完全に削除し、これらの要素を新しい配列で返します

array_flip() キーを値に変換し、値をキーに変換します。同一の値が複数ある場合は、最後の値が優先されます。

array_combine()は、キーの配列と値の配列の2つのパラメーターを取り、連想配列を返します。

ただし、私の答えをより具体的にするためには、何をしたいのかについてより多くの情報を提供する必要があります。

于 2012-11-18T12:56:03.703 に答える
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.
  }
}

配列エントリを結合し、結果として文字列を取得したい場合はimplode、PHPの関数を使用します。$string = implode(' ', $new_array);

于 2012-11-18T12:59:09.640 に答える