php - 在 PHP 中的数组数组中搜索字符串
问题描述
我有一个这样的数组。我从服务器的响应中得到这个:
所以有时数组是这样的:
$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()
来切掉那些第一个元素。将 1 添加到 的返回值array_search()
,因为您也想删除它。
$key = array_search('active channels', $array);
$output = array_slice($array, $key + 1);
如果您的数组没有数字索引,您可以使用array_values()
first 获取值,它是同一个数组,只是数字索引。
$array = array_values($array);
$key = array_search('active channels', $array);
$output = array_slice($array, $key + 1);
- 在https://3v4l.org/UVUsr进行现场演示
推荐阅读
- ios - 我们可以在不重新加载的情况下调整 UITableViewCell 的大小吗?
- java - 将 minifyEnable 应用为 true 以进行签名发布后出错
- xcode - 在 MacOS 上使用 lldb/gdb 调试特使
- angularjs - 尝试用业力和茉莉花进行测试时,“角矩无法找到矩”-AngularJS
- amp-html - non-secure (http) ampHtml links on a secure (https) page?
- java - setVisibility 使用 Integer 查看
- java - 线程安全循环FIFOBlockingQueue
- wordpress - 仅将 woocommerce 优惠券应用于购物车总数,而不应用于税线
- html - 如何使用闪亮的应用程序将 pdf 文件嵌入到数据表中?
- mysql - 插入 Base64Encoded 字符串返回不正确的字符串值(MySQL)