私はこのような配列を持っています。私はこれをサーバーの応答から取得します:
したがって、配列は次のようになることがあります。
$array =
Array
(
[0] => Message: Thanks for all
[1] => Response: Goodbye
[2] =>
[3] => inactive
[4] => active call
[5] => active channels
[6] => Hello
[7] => Hi
[8] => yes
[9] => no
)
そして時々それはこのようなものです:
$array =
Array
(
[0] => Message: Thanks for all
[1] => Response: Goodbye
[2] =>
[3] => SessionTV: 2019-06-24T17:29:53.925+0530
[4] => SessionTV: 2019-06-24T17:29:53.925+0530
[5] => SessionTV: 2019-06-24T17:29:53.925+0530
[6] => Event: 0
[7] => active channels
[8] => Hello
[9] => Hi
[10] =>
)
これは私が試したものです:
if (in_array("Event:", $array))
{
array_shift($minarr);
array_shift($minarr);
array_shift($minarr);
array_shift($minarr);
array_shift($minarr);
array_shift($minarr);
array_shift($minarr);
}
else
{
array_shift($minarr);
array_shift($minarr);
array_shift($minarr);
array_shift($minarr);
array_shift($minarr);
}
しかし、これは機能しません。
どちらの場合も期待される出力は次のとおりです。
Array
(
[0] => Hello
[1] => Hi
[2] => yes
[3] => no
)
そして
Array
(
[0] => Hello
[1] => Hi
[2] =>
)
したがって、基本的には、文字列が含まれている場合は配列からEvent:
いくつかの行をシフトし、文字列が含まれていない場合は他のいくつかの行をシフトしますEvent:
。
このような配列で文字列を検索するにはどうすればよいですか?
の後active channel
にすべての値を取得することが目標であり、配列内のすべての値に数値のインデックスが付けられていると仮定すると、でactive channels
要素を見つけることができますarray_search()
。これにより、その要素のキーが返されます(最初の出現)。これを使用して、array_slice()
これらの最初の要素をスライスします。array_search()
それも削除したいので、のリターンに1を追加します。
$key = array_search('active channels', $array);
$output = array_slice($array, $key + 1);
配列に数値インデックスが付けられていない場合array_values()
は、最初に値をフェッチできます。これは同じ配列であり、数値インデックスが付けられているだけです。
$array = array_values($array);
$key = array_search('active channels', $array);
$output = array_slice($array, $key + 1);
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加