php - 如果文本与数组匹配,则获取 id
问题描述
如果此数组上的“最终”文本匹配,我需要 Id。像这样的数组一288617
和数组二288031
。
Array
(
[0] => a:4:{i:0;s:11:"Demo Course";i:1;s:6:"288616";i:2;s:10:"Final Exam";i:3;s:6:"288617";}
)
Array
(
[0] => a:29:{i:0;s:16:"Sage 50 Accounts";i:1;s:6:"287967";i:2;s:6:"278823";i:3;s:6:"278824";i:4;s:6:"278825";i:5;s:6:"278826";i:6;s:6:"278856";i:7;s:6:"278857";i:8;s:6:"278858";i:9;s:6:"278859";i:10;s:6:"278860";i:11;s:6:"278861";i:12;s:6:"278862";i:13;s:6:"279608";i:14;s:6:"279609";i:15;s:6:"279610";i:16;s:6:"279611";i:17;s:6:"278821";i:18;s:6:"279612";i:19;s:6:"279613";i:20;s:6:"279681";i:21;s:6:"279677";i:22;s:6:"279678";i:23;s:6:"279679";i:24;s:6:"279680";i:25;s:9:"Mock Exam";i:26;s:6:"288030";i:27;s:10:"Final Exam";i:28;s:6:"288031";}
)
我已尝试使用此代码,但无法正常工作。
$search_text = 'Final';
array_filter($array, function($el) use ($search_text) {
return ( strpos($el['text'], $search_text) !== false );
});
解决方案
首先,您必须阅读unserialize
该文本。然后最简单的方法是循环并检查文本,然后获取下一个元素:
$array[0] = unserialize($array[0]);
$search_text = 'Final';
foreach($array[0] as $key => $value){
if(strpos($value, $search_text) !== false) {
$result = $array[0][$key+1];
break;
}
}
这假设数组按照您显示的方式配对:
Array
(
[0] => Demo Course
[1] => 288616
[2] => Final Exam
[3] => 288617
)
287967
使用您的第二个数组,如果您搜索它只会返回第一个 ID Sage
。
推荐阅读
- protractor - 如何在量角器中测试切换全屏开/关
- javascript - 在 JavaScript 中使用相同的输入调用时,switch 语句返回不同的结果
- algorithm - 树分解的算法
- android - 放置图标的底部应用栏问题
- c# - 无法使用 Unity 和 OAuth2.0 获取授权码
- java - maven-replacer-plugin 抛出 [错误] 非法组引用
- python - 在python中识别具有相似图案的特定元素/形状的数据结构
- google-apps-script - 将一个列表中的值匹配到不同工作表上的另一个列表并复制单个单元格 GAS
- python - Django 动态多步骤表单
- c# - WPF中的圆边3D样式按钮