1

30 行のテキストがあり、「\n」で区切られた配列に分解されます。結果は次のとおりです。

[1]=> string(121) "In recent years, the rapid growth" 
[2]=> string(139) "information technology has strongly enhanced computer systems" 
[3]=> string(89) "both in terms of computational and networking capabilities" 
[4]=> string(103) "-------------------------" 
[5]=> string(103) "these novel distributed computing scenarios"
 .
 .
[30]=> string(103) "these computer safety applications. end"

この場合、「-------------」より下のすべての配列を削除し、次のように出力を生成する必要があります。

[1]=> string(121) "In recent years, the rapid growth" 
[2]=> string(139) "information technology has strongly enhanced computer systems" 
[3]=> string(89) "both in terms of computational and networking capabilities" 

これを行う方法はありますか?ありがとう。

マイケルによる問題の解決

$i = 0;
$new_arr = array();
while ($array[$i] != "-------------------------") {
  // Append lines onto the new array until the delimiter is found
  $new_arr[] = $array[$i];
  $i++;
}
print_r($new_arr);
4

5 に答える 5

1

例えば

function getMyArray( $array ){

     $myArray = array();
     foreach( $array as $item ){
         if ( $item == '-------------------------' ){ return $myArray; }
         $myArray[] = $line;
     }
     return $myArray'
}
于 2012-04-17T13:19:26.717 に答える
1

最善の解決策:

配列を使用array_search()してから、次のように切り捨てarray_splice()ます。

$key = array_search("-------------------------", $array);
array_splice($array, $key);

明らかな解決策:

それをループして、出力を新しい配列にコピーできます。頭に浮かぶ最初の例:

$i = 0;
$new_arr = array();
while ($array[$i] != "-------------------------") {
  // Append lines onto the new array until the delimiter is found
  $new_arr[] = $array[$i];
  $i++;
}
print_r($new_arr);
于 2012-04-17T13:19:35.620 に答える
1

配列検索

および設定解除

array_slice も使用できます

于 2012-04-17T13:20:55.953 に答える
0
foreach($array as $key => $value)
{
    if($value == '-------------')
          break;
    else
          $new_array[$key]=$value;
}
于 2012-04-17T13:20:46.587 に答える
0

を使用array_searchして、その場所のキーを見つけることができます。

PHP.net から:

<?php
$array = array(0 => 'blue', 1 => 'red', 2 => 'green', 3 => 'red');
$key = array_search('green', $array); // $key = 2;
?>

キーを取得したら、次のことができます。

<?php
while($key < count($array) )
{
   $array = unset($array[$key]);
   $key++;
}
?>
于 2012-04-17T13:22:14.633 に答える