私は文章を含む文字列を持っています。これらの文を1つの配列に分割し、空の配列項目を削除するなど、各配列項目を変更したいと考えています。ここでPHP unsetが正しく動作していない配列から空の値を削除します。
は、私が持っているものです。
//Explode string by dot
$items_array = explode(".", $raw_data);
//Loop through the array
foreach ($items_array as $i => $item) {
//Remove any whitespace at front of item
$item= ltrim($item);
//Check if array item is empty and unset
if($item === NULL){
unset($items_array[$i]);
}
//Reinstate the dot
$item .= '.';
}
しかし、これは動作しません。私は余分な 'を参照してください。私がprint(strlen($item));
をループ内に置いた場合(設定されていない場合)、私はいくつかの結果を表示します0
結果。
私は条件が、私はそこにプリントを入れたのであれば、それは例えば、0現れ回の同じ量をトリガーする満たされているかどうかを知る:
if($item === NULL){
print("no value");
unset($raw_inclusions[$i]);
}
は、私はここで何か間違ったことをしたのでしょうか。
例$ raw_data文字列。私はここに置かれているものを支配しないと仮定します。
$raw_data = "Brown fox. Lazy dog."
期待/望まれる結果:
$items_array = array("Brown fox.", "Lazy dog.");
現在の結果:
$items_array = array("Brown fox.", "Lazy dog.", ".");
を私たちにあなたの例を与えるために各アイテムを持っているマップと何あなたがプログラムを実行すると思われます。 – mbouzahir
@mbouzahir above – MeltingDog
'$ item'は' $ item = ltrim($ item); 'の後の文字列になりますので、後で' $ item === NULL'は決して真ではありません。ループの最後にある '$ item。= '。';'行は、参照を使ってループしない限り、 '$ items_array'には影響しません。 – faintsignal